漫长学期的预告

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.BeanDefinition: bean定义,通过这个生成bean,包含bean名,scope,依赖的bean名,是否是primary,factoryBeanName(是factoryBean才有),构造方法信息,initMethodName,destoryMethodName 等。

2.BeanDefinitionReader

3.BeanFactory

4.ApplicationContext

5.PlaceHolderConfigurerSupport 替换占位符

6.BeanFactoryPostProcessor:处理BeanFactory刚根据beanDefinition生成的实例,可进行各种包装处理返回。

BeanPostProcessor:处理bean实例,同样可进行增强后返回。

BeanFactoryPostProcessor:对Bean工厂进行处理,还没进行过改变其行为的操作,不知道有哪些骚操作(TODO)。此时所有的BeanDefinition已经加载,但未初始化。可以覆盖或者增加属性,或者提前初始化bean。这个修改的是context内部的BeanFactory的。PlaceholderConfigurerSupport --> PropertyResourceConfigurer --> BeanFactoryPostProcessor,PropertyResourceConfigurer 用于通过配置文件设置Bean的属性值,PlaceholderConfigurerSupport 占位符替换便是其一实现。

 BeanDefinitionRegistryPostProcessor: 

7.带aware的接口,基本会被spring以回调形式设置某种类型的值。例如

BeanNameAware:设置当前bean的名字;

BeanFactoryAware:设置当前的Bean工厂

ApplicationContextAware:设置当前的应用上下文

 

8.PriorityOrdered、Ordered,@Order spring中较为惯用的顺序设置工具,不管是filter,postProcessor,类的多重包装增强,都涉及操作顺序,

基本通过这3个处理。

9.DefaultListableBeanFactory,较为关键的beanFactory实现,beanDefinitionMap 存放bean定义。而这里获取bean的方式是不断通过 getParentBeanFactory() 查找parent里的,和双亲委派类似。

10. ConfigurationClassPostProceesor 

 

posted on 2022-08-10 21:28  漫长学期的预告  阅读(27)  评论(0编辑  收藏  举报