이 안내서는 스프링 콩 수명주기의 포괄적 인 연습을 제공하여 실제 예제로 각 단계를 시연합니다. 우리는 봄의 수명주기 방법을 순차적으로 탐색하여 봄이 어떻게 콩을 등록에서 파괴에 이르기까지 관리하는지에 대한 강력한 이해를 구축합니다.
1 단계 : Bean Definition Registration ()
registerBeanDefinition()
동적 Bean 등록 (예 : 조건 또는 외부 구성 기반) 은이 방법을 통해 달성됩니다. 이 단계에서는 콩이 본질적으로 청사진입니다. 동적 등록이 진정으로 필요한 경우에만이 방법을 드물게 사용하십시오.
2 단계 : 인스턴스화 전 ()
BeanDefinitionRegistry
를 탐구합니다
무슨 일이 일어나는지 : 이 메소드는
로깅 목적으로 Bean Instantiation을 가로 채기
키 관찰 : 이 메소드는 , , , 및 )) 비슷한 패턴을 따르십시오. 세터 방법, 중요한 스프링 구성 요소에 액세스 할 수있는 콩을 제공합니다. 이것들은 원본 문서에 자세히 설명되어 있으며 "무엇이 발생하는지", "실제적인 예"및 "키 관찰"의 동일한 구조를 따릅니다. 클래스 로더, Bean Factory, Environment Properties, Embedded Value Resolver, Resource Loader, Event Publisher, 메시지 소스 및 응용 프로그램 컨텍스트에 각각 액세스 할 수 있습니다.
13 단계 : 초기화 전 ()
는
전에 실행됩니다. 를 선호합니다
@ComponentScan
가 호출되기 전에 실행됩니다. AOP 시나리오 (프록시 생성)에 유용합니다
@Bean
무슨 일이 일어나는지 : @Configuration
콩은 응용 프로그램 컨텍스트 내에서 자체 이름을 알게됩니다. 이것은 의 종속성 주입 전에 가 발생합니다
실제 예 : 자체 이름을 인식하는 콩
키 관찰 : 이 방법을 즉시 불완전한 후 즉시라고합니다. 콩은 나중에 사용하기 위해 이름을 저장할 수 있습니다 (예 : 로깅 또는 내부 조작). 단계 4-12 : 추가 수명주기 방법
, ,
BeanClassLoaderAware
BeanFactoryAware
초기화 콜백 (, )
EnvironmentAware
발생하는 일 : EmbeddedValueResolverAware
콩이 완전히 초기화되기 전에 콩 속성 또는 측면 (프록 징, 검증, 로깅)을 수정할 수 있습니다.
실제 예 : 초기화 전에 콩 수정.
ResourceLoaderAware
키 관찰 : 이 메소드는 초기화 콜백 전에 실행됩니다
14 단계 : 초기화 콜백 (, )
ApplicationEventPublisherAware
어떻게 발생 하는가 : MessageSourceAware
(주석 기반) 및 실제 예 : ApplicationContextAware 를 모두 사용합니다
키 관찰 :
를 구현하는 것보다 postProcessBeforeInitialization()
전에 실행됩니다. 엄격하게 필요하지 않은 한 BeanPostProcessor#postProcessBeforeInitialization()
이후 초기화 콜백을 실행합니다
무슨 일이 일어나는지 : 전체 Bean 초기화 후 프록시를 적용하거나 최종 수정을 수행 할 수 있습니다.
실제 예 : initialization 수정 적용
@PostConstruct
키 관찰 : InitializingBean#afterPropertiesSet()
이 메소드는 초기화 콜백 후에 호출됩니다16 단계 : 파괴 콜백 (, )
키 관찰 : @PreDestroy
(주석 기반) 및 destroy()
(인터페이스 기반) 적절한 자원 정리를 보장하십시오.
실제 예 : 자원 청소.
위 내용은 Spring- : 샘플과 함께 전체 스프링 콩-리프 사이클-분해-파괴-표식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!