spring Bean的生命週期

bean的初始化函數

1.實現 InitializingBean 接口,容器會自動調用afterPropertiesSet();post

2. 指定 <bean id="typeResolver" class="" init-method=""></bean> 指定 一個方法給 init-methodspa

若是同時指定兩種,先執行第一種,後再執行第二種。建議使用第2種,代碼污染小.net

 

註解:xml

@Bean(initMethod="",destroyMethod = "") //至關於xml int-method接口

@PostConstruct        //在構造函數執行完成以後執行get

 

bean的銷燬it

1.實現DisposableBean接口io

2.指定destroy-methodclass

註解:

@PreDestroy          //在bean 銷燬以前執行

 

指定多個bean的初始化與銷燬

1.能夠在<beans>中指定default-init--method 屬性

例: class User implent InitializingBean{

     void setName(){...}

     void init(){...}

     void afterPropertiesSet(){...}

}

Bean 後處理  是對全部的Bean進行統一處理,BeanProcessor 自己不對外提供服務,能夠不設置id.容器將自動處理其中的方法

class BeanProcessor implent BeanPostProcessor{                                  

     Object postProcessBeforeInitializetion(bean,beanName){...}

     Object postProcessAfterInitialization(bean,beanName){...}

}

 

1. 執行  User  中 setName  完依賴注入  

 

2.  執行 BeanProcessor 中 postProcessBeforeInitializetion方法處理

 

3. 執行  User  中  afterPropertiesSet  

 

4. 執行  User  中 init  配置<bean init-method="int">

 

5.  執行 BeanProcessor 中 postProcessAfterInitialization

相關文章
相關標籤/搜索