>  기사  >  Java  >  스프링 수명주기에 대한 자세한 설명

스프링 수명주기에 대한 자세한 설명

coldplay.xixi
coldplay.xixi원래의
2020-06-23 14:40:596357검색

스프링 수명주기에 대한 자세한 설명

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을 삭제하기 전에 정리 작업이 호출됩니다. 코드는 다음과 같습니다.

a initMethod 및 destroyMethod 사용


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........");
    }}
c. @ PostConstruct 및 @PreDestroy

@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");
    }}
2. BeanPostProcessor 후처리기 [인터페이스]:

Bean의 후처리기:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.