Spring 수명주기에 대한 자세한 설명:
1. @Bean 초기화 및 소멸
1.1 Bean 수명주기:
Bean 생성------초기화------파괴 프로세스
1.2 컨테이너 관리 Bean 수명 주기:
초기화 및 파기 방법을 사용자 정의할 수 있습니다. Bean이 현재 수명 주기에 도달하면 컨테이너는 사용자 정의 초기화 및 파기 방법을 호출합니다.
생성자:
단일 인스턴스: 컨테이너가 생성될 때 초기화됨
다중 인스턴스: 객체를 얻을 때마다 객체 생성
BeanPostProcessor.postProcessBeforeInitialization
BeanPostProcessor.postProcessBeforeInitialization
初始化:
对象创建完成,并赋值好,调用初始化方法。BeanPostProcessor.postProcessAfterInitialization
초기화:
객체가 생성되고 할당됩니다. 초기화 방법. BeanPostProcessor.postProcessAfterInitialization
Destruction:
단일 인스턴스: 컨테이너가 닫힐 때
다중 인스턴스: 컨테이너는 이 Bean을 관리하지 않습니다. 컨테이너는 초기화 방법을 호출하지 않습니다.
@ Bean은 init-method 및 destroy-method를 지정합니다.
2. Bean을 통해 초기화 Bean(초기화 논리 정의)을 구현합니다.
DisposableBean(파괴 논리 정의)
3 JSR250 사양을 사용할 수 있습니다. Bean이 생성되고 속성 할당이 완료됩니다
@PreDestroy: 컨테이너가 Bean을 삭제하기 전에 정리 작업이 호출됩니다. 코드는 다음과 같습니다.
MainConfig.java@Configuration@ComponentScan("com.zero.life")public class MainConfig
{// @Scope("prototype") @Bean(initMethod = "init",destroyMethod = "destroy")
public Phone phone(){
return new Phone(); }}
Phone.java
public class Phone { public Phone() {
System.out.println("Phone初始化构造。。。"); }
public void init(){
System.out.println("Phone 初始化方法。。。。"); }
public void destroy(){
System.out.println("Phone 销毁方法。。。"); }}
b. 초기화Bean 및 DisposableBean 사용
@Componentpublic class Android implements InitializingBean,DisposableBean { public Android() { System.out.println("android constructor......."); } @Override public void destroy() throws Exception { System.out.println("android destroy........"); } @Override public void afterPropertiesSet() throws Exception { System.out.println("android afterPropertiesSet........"); }}
@Componentpublic class AIIphone { public AIIphone() { System.out.println("AIIphone.... contruct..."); } @PostConstruct public void init(){ System.out.println("AIIphone.....PostConstruct"); } @PreDestroy public void destroy(){ System.out.println("AIIphone......PreDestroy"); }}
Per 형태 Bean 초기화 전후에 일부 처리 작업이 수행됩니다. 1. postProcessBeforeInitialization: 초기화 전 작동 2. postProcessAfterInitialization: 초기화 후 작동
/** * 后置处理器,初始化前后进行处理工作 */@Componentpublic class MyBeanPostProcessor implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessBeforeInitialization....."+beanName+"=>"+bean); return bean;//可对bean进行包装后返回 } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessAfterInitialization....."+beanName+"=>"+bean); return bean;//可对bean进行包装后返回 }}
추천 튜토리얼: "
java 비디오 튜토리얼
"
위 내용은 스프링 수명주기에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!