LifeCycle

Spring/Core 2007. 12. 17. 19:24

bean이 생성 될때 다음의 초기화 작업들이 수행 됩니다.
1. BeanNameAware's - setBeanName
2. BeanClassLoaderAware's - setBeanClassLoader
3. BeanFactoryAware's - setBeanFactory
4. ResourceLoaderAware's - setResourceLoader (ApplicationContext 일 경우)
5. ApplicationEventPublisherAware's - setApplicationEventPublisher
(ApplicationContext 일 경우)
6. MessageSourceAware's - setMessageSource
(ApplicationContext 일 경우)
7. ApplicationContextAware's - setApplicationContext (ApplicationContext 일 경우)
8. ServletContextAware's - setServletContext (WebApplicationContext 일 경우)
9. BeanPostProcessors - postProcessBeforeInitialization
10. InitializingBean's afterPropertiesSet
11. XML에 정의된 init-method
12.
BeanPostProcessors - postProcessAfterInitialization

아래는 컨테이너가 종료될때 수행되는 작업입니다.
1. DisposableBean's - destroy
2. XML에 정의된 destroy-method

1~12번 까지의 인터페이스들 중 BeanPostProcessors는 Spring의 후처리기로써 다른 인터페이스들 보다 좀 더 특별한 기능을 합니다. BeanPostProcessors는 따로 알아보도록 하고 나머지 인터페이스들을 모두 구현하여 테스트 해보겠습니다.
(WebApplicationContext가 아니기 때문에
ServletContextAware는 제외 했습니다.)

설정 파일

테스트 파일

출력결과
BeanNameAware - setBeanName 호출
BeanClassLoaderAware - setBeanClassLoader 호출
BeanFactoryAware - setBeanFactory 호출
ResourceLoaderAware - setResourceLoader 호출
ApplicationEventPublisherAware - setApplicationEventPublisher 호출
MessageSourceAware - setMessageSource 호출
ApplicationContextAware - setApplicationContext 호출
InitializingBean - afterPropertiesSet 호출
Custom init-method 호출

'Spring > Core' 카테고리의 다른 글

불가능은 없다. FactoryBean  (0) 2007.12.19
LifeCycle 확장  (0) 2007.12.17
LifeCycle  (0) 2007.12.17
<aop:scoped-proxy /> 작동 방식  (5) 2007.12.14
Bean scopes  (0) 2007.12.14
메소드 삽입  (0) 2007.12.14
Posted by 째코

댓글을 달아 주세요