spring的五个后置管理器
- BeanPostProcessor
- BeanFactoryPostProcessor
- BeanDefinitionRegistryPostProcessor
- ImpostSelctor
- ImportBeanDefinitionRegistrar
后置管理器 | 作用 | 应用场景 |
---|---|---|
BeanPostProcessor | 插手bean的实例过程、实例化之后,在bean没有被spring的bean容器管理之前干活 | @Poststruct、AOP |
BeanFactoryPostProcessor | springbean容器当中任意一个bean被new出来之前执行,针对beanFactory来建设 | ConfigrationClassPostProcessor类的postProcessBeanFactory方法针对配置类加上cglib代理 |
BeanDefinitionRegistryPostProcessor | 是BeanFactoryPostProcessor的子接口,在BeanFactoryPostProcessor之前执行,因为源码当中先遍历BeanDefinitionRegistryPostProcessor(有spring提供的,还有自定义的),如果自定义的,需要手动add进去,自定义的先执行 | ConfigrationClassPostProcessor、扫描、解析配置类、解析XML ,三种import的扫描、@Bean的扫描、判断配置类是否是一个完成的配置类等等 |
ImpostSelctor | 通过selectImports返回一个字符串数组,数组里面是类的全限定名,把它变成bd,动态添加bd(这个bd是死的),也可以动态扫描 | |
ImportBeanDefinitionRegistrar |