boot spring 启动 文本_SpringBoot启动时如何加载配置文件
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启动时如何加载配置文件相关推荐
- vs2008调试c#网页时出现“加载配置文件时出错: 未能映射路径'/' 错误 .
win7 64位 下vs2008调试c#网页时出现"加载配置文件时出错: 未能映射路径'/' "错误 . 解决办法:右键点击vs2008快捷方式,选择属性,然后选择"兼容 ...
- web项目的启动时文件加载顺序
web项目的启动时文件加载顺序 转自:http://www.cnblogs.com/yw-ah/p/5751509.html 一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xm ...
- 天正lisp文件夹_天正启动时加载那些lisp_怎么在启动CAD时自动加载Lisp的工具和插件...
怎么在启动 CAD 时自动加载 Lisp 的工具和插件 网上有很多非常有用的 CAD 插件, 能给绘图带来很多便利. 这些 工具手动加载后就可以执行, 但每次用的时候都要加载挺麻烦的, 能 不能在启动 ...
- 天正启动时加载那些lisp_天正启动时加载那些lisp_启动CAD时自动加载Lisp的工具和插件的方法?...
互联网上有许多非常有用的CAD插件,可以为绘图带来很多便利. 这些工具可以在手动加载后执行,但是每次使用它们都麻烦. 启动软件时,您可以加载常用插件吗? 当然,有不止一种方法. 方法1:添加到启动组 ...
- selenium中启动firefox浏览器时设置代理、加载配置文件、加载某个插件以及firefox没有安装在默认路径下的代码写法
selenium 中启动firefox浏览器的六种方式,所用的是java 1.如果浏览器没有安装在默认路径下,则用 System.setProperty("Webdriver.firefox ...
- 天正启动时加载那些lisp_启动CAD时自动加载Lisp的工具和插件的方法?
互联网上有许多非常有用的CAD插件,可以为绘图带来很多便利. 这些工具可以在手动加载后执行,但是每次使用它们都麻烦. 启动软件时,您可以加载常用插件吗? 当然,有不止一种方法. 方法1:添加到启动组 ...
- AutoCAD二次开发(C#)完成后,如何实现CAD启动时自动加载dll(不必输入netload)?
AutoCAD二次开发(C#)完成后,如何实现CAD启动时自动加载dll(不必输入netload)? 1.复制编译后的dll路径,比如我的是[C:\SectionManager_CAD_1.1_031 ...
- 天正启动时加载那些lisp_怎么在启动CAD时自动加载Lisp的工具和插件?
原标题:怎么在启动CAD时自动加载Lisp的工具和插件? 网上有很多非常有用的CAD插件,能给绘图带来很多便利.这些工具手动加载后就可以执行,但每次用的时候都要加载挺麻烦的,能不能在启动软件的时候把自 ...
- 天正启动时加载那些lisp_怎么在启动CAD时自动加载Lisp的工具和插件
怎么在启动 CAD 时自动加载 Lisp 的工具和插件 网上有很多非常有用的 CAD 插件, 能给绘图带来很多便利. 这些 工具手动加载后就可以执行, 但每次用的时候都要加载挺麻烦的, 能 不能在启动 ...
- 天正启动时加载那些lisp_怎么在启动CAD时自动加载Lisp的工具及插件
怎么在启动CAD时自动加载Lisp的工具及插件 网上有很多非常有用的CAD插件,手动加载后就可以执行,但每次用的时候都要加载挺麻烦的,能不能在启动软件的时候把自己常用的插件加载进来? 方法1:添加到启 ...
最新文章
- 广域线路打环测试步骤
- PAT (Basic Level) Practice (中文)1014 福尔摩斯的约会 (20 分)
- shell脚本如何优雅的打印帮助信息
- BZOJ5243 : [Lydsy2017省队十连测]绝版题
- 来不及解释!Linux常用命令大全,先收藏再说
- 内容可寻址存储器CAM简介
- 【Elasticsearch】es 7.8.0 java 实现 BulkRequest 批量写入数据
- c语言传入的指针无返回值,c语言 关于指针注意事项
- 【AsyncTask整理 1】 AsyncTask几点要注意的地方
- 关于飞信短信报警的问题
- windows Azure平台开发
- 稳健估计,P范数最小法
- 放鞭炮时,应该戴护目镜
- 【TWVRP】基于matlab灰狼算法求解带时间窗的车辆路径规划问题【含Matlab源码 361期】
- 手机数控模拟器安卓版_数控模拟器手机版下载-数控模拟器安卓手机版v1.1.4-河东软件园...
- 4.23上海交大PMP试题每日一题
- 清除计算机用户缓存,如何在Windows 7中清除内存缓存,释放电脑空间?
- NVIDIA vid2vid论文复现
- html文本打印lt;igt;字段,6-HTMLlt; formgt;表单标签和属性
- java hevc和heif_关于 iOS 和 macOS 的 HEVC 和 HEIF
热门文章
- 2017-3-2 数据库索引/数据类型/引擎
- IGP-LAB-EIGRP-1
- LeetCode_859_python_亲密字符串
- redis命令行技术文档。命令教程
- maven如何添加404页面
- 记事本写的python怎么运行_Python小白常见难题 如何运行Python
- python多线程下载编程_Python多线程结合队列下载百度音乐代码详解
- mysql 插入万条数据_你向 MySQL 插入 100万 条数据用了多久?
- long在python中的意思_Python中的Long对象
- 英语影响计算机专业,英语不好对于学习计算机编程来说到底有没有影响?