spring 源码分析 应用上下文层级关系

应用层级分析:
级 别类 型类名注 释作用
A1接口ApplicationContext应用上下文(环境获取、 bean容器、 消息资源、 事件发布器、 资源加载器)
B1接口WebApplicationContextweb应用上下文( ServletContext 获取、 属性名称的定义{作用域, 服务上下文, 上下文参数和属性})
C1接口ConfigurableWebApplicationContext配置web应用上下文(设置ServletContext、 设置和获取ServletConfig、 设置和获取configLocation)
B2接口ConfigurableApplicationContext配置应用上下文(设置环境、 添加BeanFactory后置处理器、 添加应用监听器、 获取容器、 刷新、 属性名称的定义{转换服务, 环境, 系统属性, 系统环境})
C2抽象类AbstractApplicationContext抽象应用上下文(核心类 refresh() 方法 刷新应用上下(其中12步操作))

应用接口

ApplicationContext 继承 EnviromentCapable, ListableBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver 接口

AbstractApplicationContext 上下文核心类 (通用的上下文功能)

抽象实现的 org.springframework.context.ApplicationContext 接口。不要求配置使用的存储类型;简单地实现通用的上下文功能。使用模板方法设计模式,需要具体的子类来实现抽象方法。

主要方法 refresh() 作用就是刷新应用上下文。 (12步操作)
spring 源码分析 应用上下文刷新


AbstractRefreshableApplicationContext 核心容器 (DefaultListableBeanFactory)

继承 org.springframework.context.support.AbstractApplicationContext 抽象类。 创建 Bean 容器,并加载 Bean。

1、refreshBeanFactory() 实现上级抽象方法, 用于创建 DefaultListableBeanFactory 容器
2、loadBeanDefinitions(DefaultListableBeanFactory) 定义抽象方法, 留给子类实现。 用于加载 BeanDefinition


AbstractRefreshableConfigApplicationContext 资源路径 (configLocations)

配置资源加载路径作为给 loadBeanDefinitions(DefaultListableBeanFactory) 方法加载 BeanDefinition 解析使用。


AbstractRefreshableWebApplicationContext web应用上下文 (ServletConfig、 ServletContext)

实现 ConfigurableWebApplicationContext 接口可以设置 ServletConfig、 ServletContext 对象。

主要实现类有 AnnotationConfigWebApplicationContextXmlWebApplicationContext 这二个web应用上下文。
loadBeanDefinitions() 为最后实现方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值