1. BeanFactory
Bean工厂: 创建和获取Bean
2. BeanDefinitionRegistry
负责BeanDefinition登记到ioc容器;
3. AnnotationConfigApplicationContext
这个类既有 BeanFactory的功能, 又有BeanDefinitionRegistry的功能, 两个接口都实现了;
所以, 在 BeanFactoryPostProcessor
的子接口BeanDefinitionRegistryPostProcessor
的接口的两个方法中:
// 1. BeanDefinitionRegistryPostProcessor 自己新增的方法:
// 在
void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException;
// 2. BeanFactoryPostProcessor接口的方法
void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
1. postProcessBeanDefinitionRegistry
要先于 postProcessBeanFactory
执行;
postProcessBeanDefinitionRegistry()方法的执行时机是: 容器中所有的bean定义将要被加载前!
postProcessBeanFactory() 方法的执行时机是: 容器中所有的bean已经保存加载, 但bean还未创建!
2. postProcessBeanDefinitionRegistry
中可以通过 registry
向spring容器中注册bean;
3. postProcessBeanFactory
中可以通过 beanFactory
从spring容器中获取bean;
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 hi@niewj.com