①创建容器,调用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指定销毁方法