--后置处理器在spring中的作用:
后置处理器在bean初始化和实例化的过程中起着举足轻重的作用,处理某些注解、设置某些bean参数、生成某些动态代理等等
--常用的后置处理器(BeanPostProcessor)
1、 ApplicationContextAwareProcessor
作用:让实现ApplicationContextAware的bean得到applicationContext(容器上下文)
(EnvironmentAware,EmbeddedValueResolverAware,ResourceLoaderAware,ApplicationEventPublisherAware,MessageSourceAware,ApplicationContextAware
实现这些接口的bean都是这个后置处理器处理)
2、 InitDestroyAnnotationBeanPostProcessor
3、 InstantiationAwareBeanPostProcessor(接口)
4、 CommonAnnotationBeanPostProcessor
CommonAnnotationBeanPostProcessor执行@Resource等注解的注入,
5、 AutowiredAnnotationBeanPostProcessor
AutowiredAnnotationBeanPostProcessor执行@Autowired注解注入
6、 RequiredAnnotationBeanPostProcessor
RequiredAnnotationBeanPostProcessor执行@ Required注解
7、 BeanValidationPostProcessor
8、 AbstractAutoProxyCreator
-----实例化和初始化的区别
1、实例化----实例化的过程是一个创建Bean的过程,即调用Bean的构造函数,单例的Bean放入单例池中
2、初始化----初始化的过程是一个赋值的过程,即调用Bean的setter,设置Bean的属性
之前的BeanPostProcessor作用于过程(2)前后,现在的InstantiationAwareBeanPostProcessor则作用于过程(1)前后;
原文:https://www.cnblogs.com/windy13/p/11986283.html