参考:准备Spring Boot的环境

1 核心原理

⭐️1 在SpringBoot的环境准备阶段的后期, 发布一个ApplicationEnvironmentPreparedEvent事件

⭐️2 ConfigFileApplicationListener 监听器监听到这个事件, 使用配置文件加载器(Loader)开始处理这个事件

⭐️3 调用配置加载器,加载配置文件,比如默认的就是application.properties, application 是Spring中定义的, 加载的逻辑大概就是application.xml, application.yaml ,这个源码没仔细看

2 debug源码过程

(1) 加载application.properties 文件?

全文搜索 application.properties ,在 org.springframework.boot.context.config.ConfigFileApplicationListener类的注释中有这个关键字,点开这个类 , 发现实例变量中有 application 字符串

private static final String DEFAULT_NAMES = "application";

继续搜索看看用这个变量的地方, 发现 getSearchNames方法, 可他是个private方法, 那么就该再看看哪个地方调用了这个方法呢?

只有一个地方:ConfigFileApplicationListener.Loader#load() 方法调用了该方法 , 我们在load() 方法第一行打上断点

Spring 配置文件加载原理相关推荐

  1. spring.factories加载原理以及自定义EnvironmentPostProcessor

    目录 spring.factories加载原理 1. SpringApplication的构造方法 1.1 SpringApplication#getSpringFactoriesInstances ...

  2. springBoot配置文件加载原理探究

    尽管用springBoot做开发已经有很长一段时间了,在开发时一般都是直接将application.properties或application.yml,放在开发环境的resources下的,运行起来 ...

  3. spring bean加载原理

    简单的分析了一下spring bean的加载原理,属于个人的理解,源码比这个要复杂的多: spring的配置文件applicationContext.xml的内容如下: <?xml versio ...

  4. spring security加载原理(基于springboot)

    一.基本架构 二.自动配置原理 依据 Spring Boot 自动配置原理,其会自动加载spring-boot-autoconfigure.jar中/META-INF/spring.factories ...

  5. spring配置文件加载流程

    转自:http://silmon.javaeye.com/blog/283515 Spring配置文件是集成了Spring框架的项目的核心,引擎从哪里开始,中间都执行了哪些操作,小谈一下它的执行流程. ...

  6. Spring : Spring配置文件加载位置

    1.美图 2.概述 spring boot启动会扫描以下位置的application.properties或者applicatior.yml文件作为Spring boot的默认配置文件 file:./ ...

  7. Spring学习总结(24)——Spring配置文件加载路径总结

    1. Spring使用ClassPathXmlApplicationContext 从classpath读取 ClassPathXmlApplicationContext 默认会去 classPath ...

  8. 配置文件加载位置||外部配置加载顺序||自动配置原理

    配置文件加载位置 SpringBoot会从这四个位置全部加载主配置文件:互补配置: 外部配置加载顺序 自动配置原理 1.自动配置原理: 1).SpringBoot启动的时候加载主配置类,开启了自动配置 ...

  9. Spring Boot 实现配置文件加解密原理

    Spring Boot 配置文件加解密原理就这么简单 背景 接上文<失踪人口回归,mybatis-plus 3.3.2 发布>[1] ,提供了一个非常实用的功能 「数据安全保护」 功能,不 ...

最新文章

  1. 微软终于想通把Script56文档更新了
  2. 转正答辩ppt_同心同行 乘风破浪 兴业装饰新员工转正考核圆满完成
  3. Hello, World!我的房车编程生活,已经 150 天了
  4. 基于webRTC技术 音频和视频,IM解
  5. 服务器的类型及作用是什么,按用途分类,服务器有哪些? - 问答库
  6. [书目20081126]转型:用对策略,做对事
  7. swift 拖动按钮_Swift 简单控件示例:滑块(UISlider)
  8. 阿里云 Code Pipeline 体验
  9. 408计算机考试科目英语数学,关于计算机考研408的那些事儿
  10. Python-OpenCV4中的阈值二值化函数threshold(),要特别注意其返回值有两个
  11. samba文件共享服务器拒绝访问,Samba共享文件夹拒绝访问
  12. SGE集群系统了解与常用操作命令
  13. 电视台的收视率是怎么计算的
  14. VMware虚拟机安装MAC OS原版系统,轻松体验苹果操作系统
  15. 阿里又上美国“售假黑名单” 是被故意抹黑了吗
  16. 5g理论速度_5G的速度到底能有多快?
  17. idm 无法下载此文件 备注: SSL_connect error 5
  18. 基于51单片机篮球计分系统
  19. 三、防火墙配置(2)---防火墙NAT配置
  20. #20 找出1-1000之间的完数

热门文章

  1. h5跳转小程序页面url_微信小程序页面跳转方法
  2. java怎么实现日程提醒_如何用java和xml实现日程提醒
  3. 条件表达式计算个人所得税c语言,个税的计算C语言实现,结果为什么是负的?...
  4. linux内核驱动子系统,linux内核中的MFD子系统
  5. 2021年本溪高中高考成绩查询入口,2021年本溪中考录取结果查询,什么时候出来附查询网址入口...
  6. 银行突发事件演练方案_【工作动态】准旗联社组织开展优质文明服务应急演练,为优质服务保驾护航!...
  7. STM32之PWM波
  8. BPMN2.0--消息事件(message)
  9. css sprites原理,[css] 第17天 解释下 CSS sprites的原理和优缺点分别是什么?
  10. 语言 micropython_【雕爷学编程】MicroPython动手做(03)——零基础学MaixPy之开机测试...