spring的bean初始化前、中、后想做一些事情,怎么办?
解决方法:
1、bean初始化前、后执行配置,创建MyPostProcessor类,实现BeanPostProcessor接口,实现接口中的postProcessBeforeInitialization(bean初始化前执行的方法),
postProcessAfterInitialization(bean初始化后执行的方法)
public class MyPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName)
throws BeansException {
System.out.println("对象" + beanName + "开始初始化");
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName)
throws BeansException {
System.out.println("对象" + beanName + "初试化完成");
return bean;
}
}
2.将该MyPostProcessor类要作为bean定义到applicationContext.xml中,所有的bean初始化就都会执行,如下
<bean class="xxx.MyPostProcessor"></bean>
3.bean初始化中执行自己的代码的情况。在applicationContext.xml配置init-method。
例如:<bean id="MyBean" class="xxx.MyBean" init-method="myInit"></bean>
配置了之后,在初始化的时候会执行TestBean中定义的myInit方法。