[학교]_6주차_스프링 @ComponentScan 실습

728x90

Example 5-4 자바코드 설정에서 Xml 설정 파일 포함하기. @ImportScan("classpath: - - -.xml")

Example 5-5 컴포넌트 스캔 @ComponentScan, @Component

[컴포넌트 스캔 기능] 
: 아직 빈 객체가 아닌 상태에서 스프링이 직접 클래스 검색하여 @Component 붙은 클래스에 대해 빈으로 등록해주는 기능

-> 스캔 대상 지정  |  @Component 
  -클래스에 @Component 붙여주면 해당 클래스가 스캔 대상이 된다. 

-> 스캔 설정 |  @ComponentScan
  -Java 설정 클래스에 적용함
  - basePackages 속성값은 스캔 대상 패키지 목록 지정 

Example 5-7 Bean 객체의 LifeCycle -(1) 인터페이스 사용

Spring 컨테이너는
(1) Bean 객체가 InitializingBean 인터페이스를 구현한 경우,
           해당 객체 내부에서 초기화 함수인 afterPropertiesSet() 메소드를 재정의해놓고,
                                                                        main() 에서 해당 빈 객체 초기화 과정에 실행한다. 

(2) Bean 객체가 DisposableBean 인터페이스를 구현한 경우,
           해당 객체 내부에서 소멸 함수인 destroy() 메소드를 재정의해놓고 
                                                                        main() 에서 해당 빈 객체 소멸 과정에 실행한다.  
 <실행 결과 화면>
 MessageBeanKo 클래스는 xml 파일에 빈으로 등록되어 있는 빈 객체인데, 
                                      InitializingBean 인터페이스, DisposableBean 인터페이스를 모두 구현한 클래스이다. 

  HelloApp 속 main() 실행 시, 이 빈 객체 초기화 과정에서 먼저 afterPropertiesSet() 이 실행되고, 
                                                       이 빈 객체 소멸 과정에서 destroy() 가 실행되는 것을 확인할 수 있다.

Example 5-8 Bean 객체의 LifeCycle -(2) 속성으로 지정

다른 이름의 함수를 각각 초기화 함수, 소멸 함수로 지정하고 싶을 때,
                                                                 속성을 이용하여 해당 메소드의 이름 지정하는 방법 O

-> [설정 XML 파일 속 속성 이용 ]
      : <bean> 빈 객체 등록 시 
   init-method 속성에 초기화 메소드 이름 지정
   destroy-method 속성에 소멸 메소드 이름 지정

-> [Java 설정 클래스 속 속성 이용 ]
      : @Bean 빈 객체 등록 시 
    initMethod 속성에 초기화 메소드 이름 지정 
    destroyMethod 속성에 소멸 메소드 이름 지정
<실행 결과 화면>
    자바 Xml 설정 파일 속에 MessageBeanKo 클래스를 bean으로 등록하는 과정에서 
               init-method 속성값으로 "initMessage"를, destroy-method 속성값으로 "finishMessage" 를 줬다.
    결과를 보면 해당 빈 객체 초기화 과정, 소멸 과정 각각에서 해당 메소드 실행되는 것을 알 수 있다.

728x90