Spring Boot基于“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让开发者无须手动进行配置)的理念,能够使开发者快速构建起一个项目。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,而可以不用或者只需要很少的Spring配置。

通常一个Spring Boot的启动程序只有寥寥数行代码,却能够使项目运行起来:

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

下面通过源代码分析一下,Spring Boot在启动时是如何加载配置文件的(基于Spring Boot 1.4.0.RELEASE)。

一、入口方法SpringApplication.run分析

run方法的源代码如下:

可以看到,Spring Boot是通过listener监听器加载配置文件的。Spring Boot在启动完成时会广播一个SpringApplicationEvent事件:

而SpringApplicationEvent事件是继承自ApplicationEvent事件的,代码如下:

二、监听类实现分析

ApplicationEvent事件由ApplicationListener接口类实现监听,其实现类之一ConfigFileApplicationListener能够监听上面广播出来的SpringApplicationEvent事件,代码如下:

在ConfigFileApplicationListener中,postProcessEnvironment方法是查找application.yml配置文件的入口方法:

查看其中调用的三个方法之一的addPropertySources方法:

boot spring 启动 文本_SpringBoot启动时如何加载配置文件相关推荐

  1. vs2008调试c#网页时出现“加载配置文件时出错: 未能映射路径'/' 错误 .

    win7 64位 下vs2008调试c#网页时出现"加载配置文件时出错: 未能映射路径'/' "错误 . 解决办法:右键点击vs2008快捷方式,选择属性,然后选择"兼容 ...

  2. web项目的启动时文件加载顺序

    web项目的启动时文件加载顺序 转自:http://www.cnblogs.com/yw-ah/p/5751509.html 一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xm ...

  3. 天正lisp文件夹_天正启动时加载那些lisp_怎么在启动CAD时自动加载Lisp的工具和插件...

    怎么在启动 CAD 时自动加载 Lisp 的工具和插件 网上有很多非常有用的 CAD 插件, 能给绘图带来很多便利. 这些 工具手动加载后就可以执行, 但每次用的时候都要加载挺麻烦的, 能 不能在启动 ...

  4. 天正启动时加载那些lisp_天正启动时加载那些lisp_启动CAD时自动加载Lisp的工具和插件的方法?...

    互联网上有许多非常有用的CAD插件,可以为绘图带来很多便利. 这些工具可以在手动加载后执行,但是每次使用它们都麻烦. 启动软件时,您可以加载常用插件吗? 当然,有不止一种方法. 方法1:添加到启动组 ...

  5. selenium中启动firefox浏览器时设置代理、加载配置文件、加载某个插件以及firefox没有安装在默认路径下的代码写法

    selenium 中启动firefox浏览器的六种方式,所用的是java 1.如果浏览器没有安装在默认路径下,则用 System.setProperty("Webdriver.firefox ...

  6. 天正启动时加载那些lisp_启动CAD时自动加载Lisp的工具和插件的方法?

    互联网上有许多非常有用的CAD插件,可以为绘图带来很多便利. 这些工具可以在手动加载后执行,但是每次使用它们都麻烦. 启动软件时,您可以加载常用插件吗? 当然,有不止一种方法. 方法1:添加到启动组 ...

  7. AutoCAD二次开发(C#)完成后,如何实现CAD启动时自动加载dll(不必输入netload)?

    AutoCAD二次开发(C#)完成后,如何实现CAD启动时自动加载dll(不必输入netload)? 1.复制编译后的dll路径,比如我的是[C:\SectionManager_CAD_1.1_031 ...

  8. 天正启动时加载那些lisp_怎么在启动CAD时自动加载Lisp的工具和插件?

    原标题:怎么在启动CAD时自动加载Lisp的工具和插件? 网上有很多非常有用的CAD插件,能给绘图带来很多便利.这些工具手动加载后就可以执行,但每次用的时候都要加载挺麻烦的,能不能在启动软件的时候把自 ...

  9. 天正启动时加载那些lisp_怎么在启动CAD时自动加载Lisp的工具和插件

    怎么在启动 CAD 时自动加载 Lisp 的工具和插件 网上有很多非常有用的 CAD 插件, 能给绘图带来很多便利. 这些 工具手动加载后就可以执行, 但每次用的时候都要加载挺麻烦的, 能 不能在启动 ...

  10. 天正启动时加载那些lisp_怎么在启动CAD时自动加载Lisp的工具及插件

    怎么在启动CAD时自动加载Lisp的工具及插件 网上有很多非常有用的CAD插件,手动加载后就可以执行,但每次用的时候都要加载挺麻烦的,能不能在启动软件的时候把自己常用的插件加载进来? 方法1:添加到启 ...

最新文章

  1. 广域线路打环测试步骤
  2. PAT (Basic Level) Practice (中文)1014 福尔摩斯的约会 (20 分)
  3. shell脚本如何优雅的打印帮助信息
  4. BZOJ5243 : [Lydsy2017省队十连测]绝版题
  5. 来不及解释!Linux常用命令大全,先收藏再说
  6. 内容可寻址存储器CAM简介
  7. 【Elasticsearch】es 7.8.0 java 实现 BulkRequest 批量写入数据
  8. c语言传入的指针无返回值,c语言 关于指针注意事项
  9. 【AsyncTask整理 1】 AsyncTask几点要注意的地方
  10. 关于飞信短信报警的问题
  11. windows Azure平台开发
  12. 稳健估计,P范数最小法
  13. 放鞭炮时,应该戴护目镜
  14. 【TWVRP】基于matlab灰狼算法求解带时间窗的车辆路径规划问题【含Matlab源码 361期】
  15. 手机数控模拟器安卓版_数控模拟器手机版下载-数控模拟器安卓手机版v1.1.4-河东软件园...
  16. 4.23上海交大PMP试题每日一题
  17. 清除计算机用户缓存,如何在Windows 7中清除内存缓存,释放电脑空间?
  18. NVIDIA vid2vid论文复现
  19. html文本打印lt;igt;字段,6-HTMLlt; formgt;表单标签和属性
  20. java hevc和heif_关于 iOS 和 macOS 的 HEVC 和 HEIF

热门文章

  1. 2017-3-2 数据库索引/数据类型/引擎
  2. IGP-LAB-EIGRP-1
  3. LeetCode_859_python_亲密字符串
  4. redis命令行技术文档。命令教程
  5. maven如何添加404页面
  6. 记事本写的python怎么运行_Python小白常见难题 如何运行Python
  7. python多线程下载编程_Python多线程结合队列下载百度音乐代码详解
  8. mysql 插入万条数据_你向 MySQL 插入 100万 条数据用了多久?
  9. long在python中的意思_Python中的Long对象
  10. 英语影响计算机专业,英语不好对于学习计算机编程来说到底有没有影响?