1. 程式人生 > >Spring管理Bean的生命週期

Spring管理Bean的生命週期

①建立容器,呼叫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 id="car" class="poCycle.Car" init-method="MyInit"
	 destroy-method="MyDestroy">
		<property name="name" value="BMW"></property>
	</bean>
	<bean class="poCycle.MyBeanPostProcessor"></bean>
需要在配置檔案中新增<bean class="poCycle.MyBeanPostProcessor"></bean>才能使用初始化前置和後置方法

init-method指定初始化方法,destroy-method指定銷燬方法