简介
InstantiationAwareBeanPostProcessor 继承自 BeanPostProcessor 是 Spring 非常重要的拓展接口,监听 Bean 的一段生命周期:实例化(Instantiation)
前置
指定 Bean 初始化方法(方式:注解):创建后执行这些操作
@Component
public class Color {
@PostConstruct
public void init(){
System.out.println("车生产后的时候,测试一下");
}
}
指定 Bean 初始化方法(方式:指定):创建后执行这些操作
@Configuration
class Config {
@Bean(name = "color", initMethod = "init")
public Color getColor(){
return new Color();
}
}
定义
public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor {
// 在目标对象实例化之前调用
Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException;
// 在目标对象实例化之后调用
boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException;
// 对属性值进行修改
PropertyValues postProcessPropertyValues(PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) throws BeansException;
}
public interface BeanPostProcessor {
//bean初始化方法调用前被调用
Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;
//bean初始化方法调用后被调用
Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException;
}
参考
https://blog.csdn.net/qq_38526573/article/details/88091702