1. 全称 : BeanPostProcessor
2. 作用 : 对Spring工厂所创建的对象,进行在加工
3. 会对 Spring 工厂中的所有对象进行加工
两个参数
Object bean
:刚刚创建好的对象String beanName
: 对象的 id
值返回值
方法一
Object postProcessBeforeInitialization(Object bean, String beanName)
方法二
Object postProcessAfterInitialization(Object bean, String beanName)
package com.spring.test;
import com.spring.model.Address;
import com.spring.model.User;
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("---------加工-------------");
if(bean instanceof com.spring.model.User){
User user = (User) bean;
user.setAddress(new Address("甘肃省张掖市"));
user.setName("佩奇");
}
System.out.println("---------加工完成----------------");
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return BeanPostProcessor.super.postProcessAfterInitialization(bean, beanName);
}
}
<bean id="myBeanPostProcessor" class="com.spring.test.MyBeanPostProcessor">bean>