Spring管理Bean的生命週期
阿新 • • 發佈:2019-02-06
①建立容器,呼叫bean的構造方法,建立bean
②呼叫bean的初始化前置方法(如果沒配置就沒有這一步)
③呼叫bean的初始化方法(使用者自己指定一個方法作為初始化方法)
④呼叫bean的初始化後置方法(如果沒配置就沒有這一步)
⑤IOC容器關閉,呼叫bean的銷燬方法(使用者自己指定一個方法作為銷燬方法)
public class Car { private String name; public String getName() {...} public void setName(String name{...} public Car() {...} public void MyInit(){...} public void MyDestroy(){...} }
public class MyBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessAfterInitialization(Object arg0, String arg1)
throws BeansException {
......
return arg0;
} @Override public Object postProcessBeforeInitialization(Object arg0, String arg1) throws BeansException {
......
return arg0;
}
}
要使用初始化前置和後置方法就要寫一個類實現BeanPostProcessor介面,然後重寫裡面的前置後置方法。
引數一:是bean例項本身;引數二:是IOC容器中bean配置的名稱;返回值:是實際上返回給使用者使用的bean,可以在前置和後置方法中修改
需要在配置檔案中新增<bean class="poCycle.MyBeanPostProcessor"></bean>才能使用初始化前置和後置方法<bean id="car" class="poCycle.Car" init-method="MyInit" destroy-method="MyDestroy"> <property name="name" value="BMW"></property> </bean> <bean class="poCycle.MyBeanPostProcessor"></bean>
init-method指定初始化方法,destroy-method指定銷燬方法