--后置處理器在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)前后;
