beans-cycle.xml配置
<bean id="car" class="demo.cycle.Car" init-method="init" destroy-method="destory">
<property name="brand" value="Audi"></property>
</bean>
<!-- 实现 BeanPostProcessor 接口,并提供
postProcessBeforeInitialization 和
postProcessAfterInitialization 的实现
不要配置 id, ioc 容器自动识别 BeanPostProcessor
-->
<!--配置bean的后置处理器-->
<bean class="demo.cycle.MyBeanPostProcessor"></bean>
MyBeanPostProcessor.java
public class MyBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("postProcessBeforeInitialization:" + bean + ", " + beanName);
// 各种判断操作
if("car".equals(beanName)){
}
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("postProcessAfterInitialization:" + bean + ", " + beanName);
// 返回所需要的类型对象
// 此例子 默认 是 配置文件中的 “Audi” 修改后变成了 “Ford”
Car car = new Car();
car.setBrand("Ford");
return car;
}
}
注意: Car 类 就不写了,无非就是 属性,get,set方法,两个配置文件中的方法,还有一个 toString方法。