1:BeanDefinition
ScannedGenericBeanDefinition:
存储@Component、@Service、@Controller等注解注释的类
AnnotatedGenericBeanDefinition:
存储@Configuration注解注释的类
ConfigurationClassBeanDefinition:
在@Configuration注解的类中,使用@Bean注解实例化的Bean,其定义会用ConfigurationClassBeanDefinition存储
2:Beanfactory
HierarchicalBeanFactory接口:
接口是BeanFactory的扩展,所有要应用到有层级体系的容器类(有父BeanFactory的那种),都应该实现此接口。此接口的getParentBeanFactory方法可以得到此BeanFactory的父BeanFactory,但是设置一个BeanFactory的父BeanFactory的方法却没有在此接口中,而是在ConfigurableBeanFactory中。
ConfigurableBeanFactory接口:
定义BeanFactory的配置.ConfigurableBeanFactory中定义了太多太多的api,比如类加载器,类型转化,属性编辑器,BeanPostProcessor,作用域,bean定义,处理bean依赖关系,合并其他ConfigurableBeanFactory,bean如何销毁
AbstractBeanFactory类:
实现configurableBeanFactory接口,实现基础的组件构件能力
继承FactoryBeanRegistrySupport类,实现扩展注册单例bean factoryBean,获取bean的能力
AbstractAutowireCapableBeanFactory类:
继承AbstractBeanFactory类,继承能力
实现AutowireCapableBeanFactory接口,实现扩展自动装配Bean的能力
DefaultListableBeanFactory类:
继承AbstractAutowireCapableBeanFactory类,继承它的能力
实现ConfigurableListableBeanFactory接口,完成bean加载到容器的所有能力
3:Beanpostprocessor
列举常用的beanpostprocessor,即实现beanpostprocessor的接口的实现
ServletContextAwareProcessor:
是Spring MVC Web应用(不一定要基于Springboot)中应用上下文向bean 设置ServletContext的BeanPostProcessor。
AbstractAdvisingBeanPostPorcessor
自身内置一个 Advisor,检查当前bean是否符合应用该 Advisor 的条件,符合的话将自己的 Advisor 包裹到当前bean(必要的时候为当前bean创建代理对象以便包裹自己的Advisor)
DestructionAwareBeanPostProcessor
在销毁之前,将此BeanPostProcessor应用于给定的bean实例,例如调用自定义销毁回调
DubboConfigDefaultPropertyValueBeanPostProcessor
用于{@link AbstractConfig Dubbo的Config Beans}的默认属性值
BeanValidationPostProcessor
它在Spring托管的bean中检查JSR-303约束注释,并在调用bean的init方法(如果有)之前,在违反约束的情况下抛出初始化异常
InstantiationAwareBeanPostProcessor
实例化bean的处理器。支持在bean实例化前后做一系列操作
BeanPostProcessorChecker
当在BeanPostProcessor实例化期间创建一个bean时,即当一个bean不适合所有BeanPostProcessor处理时,记录一个消息消息的BeanPostProcessor。
ErrorPageRegistrarBeanPostProcessor
在ErrorPageRegistry bean创建时初始化前将容器中的所有ErrorPageRegistrar bean注册进来。
WebServerFactoryCustomizerBeanPostProcessor
WebServerFactory 对象创建完毕后, WebServerFactoryCustomizerBeanPostProcessor 会从 BeanFactory 中查询所有 WebServerFactoryCustomizer 的Bean生成列表、排序,然后逐一调用 WebServerFactoryCustomizer 的 customize 方法。对于自定义springweb容器的bean进行定制化。
ApplicationContextAwareProcessor
将ApplicationContext传递给实现Aware接口的bean
ProjectingArgumentResolverBeanPostProcessor
给RequestMappingHandlerAdapter 注册参数解析器bean
AdvisorAdapterRegistrationManager
其主要的作用为容器中管理的Bean注册一个面向切面编程的通知适配器,以便在Spring容器为所管理的Bean进行面向切面编程时提供方便
DubboConfigAliasPostProcessor
用于使用其设置Dubbo Config bean的别名
DataSourceInitializerPostProcessor
强制立刻初始化datasource
LoadTimeWeaverAwareProcessor
bean设置loadTimeweaver
PropertyMappingCheckBeanPostProcessor
检查@propertymapping注解是否和@component注解同时使用。如果同时使用就报错
ConfigurationPropertiesBindingPostProcessor
在一个Spring Boot应用中,只要使用了注解@EnableConfigurationProperties,就会导致ConfigurationPropertiesBindingPostProcessor被添加到容器。
用于解析bean组件上的注解@ConfigurationProperties,将属性源中的属性设置到bean组件。
MergedBeanDefinitionPostProcessor
合并bean定义的处理
ConfigurationBeanBindingPostProcessor
dubbbobean绑定