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 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 