本文参考:《Spring in action》
Spring中bean的生命周期相对比较复杂,因为我们可以利用Spring提供的扩展点来自定义bean的创建过程。
下图展示了bean装载到Spring应用上下文中的一个典型的生命周期过程。
bean的后置处理器:
•
Bean
后置处理器允许在调用初始化方法前后对
Bean
进行额外的处理
.
•
Bean
后置处理器对
IOC
容器里的所有
Bean
实例逐一处理
,
而非单一实例
.
其典型应用是
:
检查
Bean
属性的正确性或根据特定的标准更改
Bean
的属性
.
•
对
Bean
后置处理器而言
,
需要实现 BeanPostProcessor
接口
.
在初始化方法被调用前后
,Spring
将 把
每个
Bean
实例分别传递给上述接口的以下两个方法
:
示例:
1. Car.java
public class Car {
public Car(){
System.out.println("Car is constructor...");
}
private String brand;
public void setBrand(String brand){
System.out.println("set brand");
this.brand = brand;
}
public void init(){
System.out.println("init...");
}
public void destroy(){
System.out.println("destroy...");
}
}
2.MyBeanPostProcessor.java
public class MyBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object o, String s) throws BeansException {
System.out.println("BeforeInitialization: "+o+":"+s); //进行检查
if