当前位置: 首页 > article >正文

Spring源码解析

第一讲 容器接口

BeanFactory和ApplicationContext接口的具体继承关系:

ApplicationContext 间接继承了BeanFactory

  • BeanFactory是父接口
  • ApplicationContext是子接口,里面一些功能调用了BeanFactory
BeanFactory的功能
  • 表面上只有 getBean(接口的方法)
  • 实际上控制反转、基本的依赖注入、直至bean的生命周期的各种功能,都由它的实现类来提供

他的实现类-DefaultListableBeanFactory

  • 父类:DefaultSingleletonBeanRegistry

BeanFactory的主要方法(看接口的主要方法ctrl+F12):

  • containsBean 根据bean的名字看容器中是否包含该对象
  • getAliases 根据bean的名字获取他的别名
  • getBean 根据name/type 获取该bean

管理所有单例对象

所有单例bean:singletonObjects

获取到所有单例bean

DefaultSingleletonBeanRegistry.class.get
ApplicationContext的扩展功能

ApplicationContext的扩展功能 ,主要来自 继承的四个接口

  • MessageSource 处理国际化资源能力
  • ResourcePayyernResolver 对通配符去匹配资源的能力
  • EnvironmentCapable 读取环境信息,比如读取 application.properties
  • ApplicationEventPublisher 发布事件对象
MessageSource 处理国际化资源能力
context.getMessage("hi",null, Locale.ENGLISH);
ResourcePayyernResolver 对通配符去匹配资源的能力
 //第二个接口 通配符classpath  jar包中classpath*:
context.getResource("classpath:hello.txt");
  • file: 磁盘路径
  • classpath: 相对路径
  • classpath*:也可以在jar包寻找
EnvironmentCapable 读取环境信息,比如读取 application.properties
//第三个信息 获取配置信息
//1、获取系统环境变量中的值
context.getEnvironment().getProperty("java_home");
//2、获取application.porperties
context.getEnvironment().getProperty("server.port");

ApplicationEventPublisher 发布事件对象
  //4、发送事件
context.publishEvent(new User());

接收事件

    @EventListener
    public void res(User user){
        log.(user)
    }

http://www.kler.cn/a/589335.html

相关文章:

  • 自然语言处理demo:基于Python的《三体》文本分析
  • 更轻量级的的Knf4j接口文档配置实战
  • 【Linux篇】环境变量与地址空间
  • C++ 类和对象----构造函数
  • 一个简单的RPC示例:服务端和客户端
  • 【算法day13】最长公共前缀
  • AI时代的软件测试该如何“破局”?
  • 【Qt】QWidget属性2
  • 【项目合集】基于ESP32的智能化妆柜
  • 【Azure 架构师学习笔记】- Azure Databricks (22) --Autoloader
  • 随笔小记-本人常用桌面应用(流程图-boardmix,截图-snipaste,文件比较-beyond compare,远程控制-向日葵,解压-360压缩)
  • 机试准备第18天
  • Python的类和对象(4)
  • 在Django模型中的Mysql安装
  • oracle 基础知识之 多表查询
  • JVM---Java 类生命周期与类加载机制
  • 电子电气架构 --- 智能电动汽车的品牌竞争转变
  • 【失败了】LazyGraphRAG利用本地ollama提供Embedding model服务和火山引擎的deepseek API构建本地知识库
  • 面试系列|蚂蚁金服技术面【3】
  • C语言内存函数讲解