spring注解驱动开发-(12)-BeanFactory-和-BeanDefinitionRegistry

1. BeanFactory

Bean工厂: 创建和获取Bean

2. BeanDefinitionRegistry

负责BeanDefinition登记到ioc容器;

3. AnnotationConfigApplicationContext

这个类既有 BeanFactory的功能, 又有BeanDefinitionRegistry的功能, 两个接口都实现了;

image.png

所以, 在 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

×

喜欢就点赞,疼爱就打赏