实现BeanPostProcessor 接口,并具体提供
Object postProcessBeforeInitialization(Object bean, String beanName):init-method之前调用
Object postProcessAfterInitialization(Object bean, String beanName):init-method之后调用的实现
bean:bean 实例本身
beanName:IOC容器配置的bean的名字
返回值:是实际上返回给用户的那个Bean,注意:可以在以上两个方法中修改返回的bean,甚至返回一个新的bean
配置bean的后置处理器: 不需要配置ID ,IOC容器自动识别是一个BeanPostProcessor
<bean class="cycle.MyBeanPostProcessor"></bean>
MyBeanPostProcessor类
package cycle;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class MyBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName)throws BeansException {
System.out.println("Bean中init开始之前所做的"+bean+","+beanName);
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName)throws BeansException {
System.out.println("Bean中init结束之后所做的"+bean+","+beanName);
Car car =new Car();
car.setBrand("路虎");
return car;
}
}