ApplicationContext和BeanFactory架构图
2021-05-11 13:53:20 3 举报
ApplicationContext和BeanFactory是Spring框架中的两个核心接口。BeanFactory是一个工厂,负责生产和管理Java对象,而ApplicationContext是一个更高级的容器,除了具备BeanFactory的功能外,还提供了更多的高级功能。 从架构图上看,BeanFactory位于最底层,它负责创建、配置和管理Bean对象。而ApplicationContext位于上层,它继承自BeanFactory,并扩展了更多的功能。例如,ApplicationContext提供了国际化支持、事件传播、资源访问等高级功能。
作者其他创作
大纲/内容
ApplicationContext的生命周期处理器,容器在启动和关闭时会分别调用LifecycleProcessor的onRefresh方法和onClose方法
TypeConverter typeConverter
ResourcePatternResolver
作用域的对应关系
如果某个需要自动注入的属性的类型属于ignoredDependencyTypes,那么该属性则不会进行自动注入
AutowireCandidateResolver
ConversionService
AbstractApplicationContext
ApplicationEventMulticaster
Set<Class<?>> ignoredDependencyTypes
类型转化器,底层使用的就是ConversionService
是不是有销毁回调后置处理器
LifecycleProcessor
MessageSource
parentBeanFactory
是不是有实例化回调后置处理器
用来检查某个BeanDefinition是不是一个可以自动装配的Bean(是不是可以被自动注入给某个Bean)
FactoryBeanRegistrySupport
这个Set中所记录的接口中的set方法不会进行自动注入
AbstractAutowireCapableBeanFactory
类加载器
资源加载器,如果某个类实现了这个接口,则表示这个类可以加载资源,当然,具体到底是什么资源则有该类自己决定,有:1. BeanDefinitionResource,内部包裹了一个BeanDefinition对象2. FileUrlResource,内部包裹了一个File对象3. ByteArrayResource,内部包裹了一个字节数组
父Bean工厂
实例化Bean的策略
表示注册的事件监听器
缓存FactoryBean的名字已经FactoryBean本身的实例对象
正常创建中的单例beanName
是否运行循环依赖
所有单例Bean,按类型进行分类
beanClassLoader
继承了ResourceLoader,是一个资源加载器,支持一次性加载多个资源
缓存某个类的工厂方法对象
InstantiationStrategy
BeanExpressionResolver
主要作用可以用来扫描得到并注册BeanDefinition
父容器
Set<Class<?>> ignoredDependencyInterfaces
SimpleAliasRegistry
AnnotatedBeanDefinitionReader
allowCircularReferences
二级缓存
ResourceLoader
Set<ApplicationListener<?>>
DefaultSingletonBeanRegistry
Set<String> singletonsCurrentlyInCreation
Bean工厂的后置处理器对象,用来初始化Bean工厂
hasInstantiationAwareBeanPostProcessors
DefaultListableBeanFactory
ApplicationContext parent
缓存FactoryBean所创建出来的object
某个bean依赖了哪些bean
哪个类实现了MessageSource接口,就表示这个类拥有了国际化的功能
List<BeanFactoryPostProcessor>
ClassPathBeanDefinitionScanner
GenericApplicationContext
Spring容器-AnnotationConfigApplicationContext
ConfigurableEnvironment
beanName和别名的映射关系
beanName和BeanDefinition之间的对应关系
List<BeanPostProcessor> beanPostProcessors
Bean的后置处理器
主要作用添加一些基础的PostProcessor,同时可以通过reader进行BeanDefinition的注册
List<String> beanDefinitionNames
三级缓存
AbstractBeanFactory
类型转化服务
hasDestructionAwareBeanPostProcessors
表示是一个事件广播器,可以添加监听器,可以发布事件
Spring EL表达式解析器
按注册顺序排序的所有BeanDefinition的名字
ApplicationContext所处的环境,ApplicationContext中可以通过它获取外部的环境变量,包括:1. 操作系统属性2. 虚拟机属性
单例池,一级缓存
某个属于哪些些Bean的依赖
0 条评论
回复 删除
下一页