springboot 配置文件读取以及顺序问题_springboot先读取带后缀的配置还是不带后缀-程序员宅基地

技术标签: spring boot  yml  springboot  

大家推荐个靠谱的公众号程序员探索之路,大家一起加油,这个公众号已经接入图灵https://img-blog.csdnimg.cn/20181129224604602.png ​  

汗颜啊!!!springboot学到现在连最基本的配置文件顺序为题还不知道

1.SpringBoot配置文件
SpringBoot使用一个以application命名的配置文件作为默认的全局配置文件。支持properties后缀结尾的配置文件或者以yml/yaml后缀结尾的YAML的文件配置。
以设置应用端口为例
properties文件示例(application.properties):

server.port=8001
YAML文件示例(application.yml):

server:
  port: 8002

两者同时存在情况
假如各配置文件都配置了不同的端口,那么SpringBoot会使用哪一个端口呢?带着疑问试验一下实例
运行结果:

o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8001 (http)

结论:可见在同一目录下,properties配置优先级 > YML配置优先级。

//所以我们在jar包启动时带上properties写法的配置可以覆盖配置
2.配置文件目录
SpringBoot配置文件可以放置在多种路径下,不同路径下的配置优先级有所不同。
可放置目录(优先级从高到低)

file:./config/ (当前项目路径config目录下);
file:./ (当前项目路径下);
classpath:/config/ (类路径config目录下);
classpath:/ (类路径config下).
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
SpringBoot会从这四个位置全部加载配置文件并互补配置;
我们可以从ConfigFileApplicationListener这类便可看出,其中DEFAULT_SEARCH_LOCATIONS属性设置了加载的目录:

private static final String DEFAULT_SEARCH_LOCATIONS = "classpath:/,classpath:/config/,file:./,file:./config/";
接着getSearchLocations方法中去逗号解析成Set,其中内部类Loader负责这一配置文件的加载过程,包括加载profile指定环境的配置,以application+’-’+name格式的拼接加载。

多种目录配置同时存在情况
接下来还是以端口配置为例

1.在resources/config目录下配置文件设置端口为8010;
2.在resources/目录下配置文件设置端口为8020;
3.在类路径config目录下配置文件设置端口为8030;
4.在类路径下配置文件设置端口为8040;

最终运行结果:

o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8010 (http)

通过控制变量法得以论证其优先级由高到底,高优先级的配置会覆盖低优先级的配置
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yueloveme/article/details/87391342

智能推荐

组合数学中的项链计数_组合数学项链问题-程序员宅基地

文章浏览阅读789次。给c种不同颜色宝石能穿成多少种长度为s的宝石项链(本质不同)Burnside定理的应用:当n为奇数时,有n种翻转,每种翻转都是以一个顶点和该顶点对边的中点对称。有k^(n/2+1)*n种。当n为偶数时,有n种翻转,其中一半是以两个对应顶点,另一半是以两条对边对称。有k^(n/2+1)*n/2+k^(n/2)*n/2种。..._组合数学项链问题

蓝桥杯第八届 省赛 c语言A组_第八届蓝桥杯c语言a组-程序员宅基地

文章浏览阅读575次,点赞2次,收藏7次。第一题标题:迷宫X星球的一处迷宫游乐场建在某个小山坡上。它是由10x10相互连通的小房间组成的。房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则:L表示走到左边的房间,R表示走到右边的房间,U表示走到上坡方向的房间,D表示走到下坡方向的房间。X星球的居民有点懒,不愿意费力思考。他们更喜欢玩运气类的游戏。这个游戏也是如此!开始的时候,直升机把10..._第八届蓝桥杯c语言a组

常用的抓包工具_tcap包-程序员宅基地

文章浏览阅读1.3k次。建议先了解不同协议和网络层的数据包结构。不然,你将无法了解如何做包分组工作,以及这些工具如何使用。出于学习目的,在使用这些工具列表之前,你必须了解不同协议的数据包,包中的不同字段,这些包字段的含义或目的,以及这些包在网络通信中的使用方式。一旦你知道这些事情,你将能够改变这些值,以便你在网络中看到你所需的效果。1. HpingHping是最受欢迎和免费的抓包工具之一。它允许你修改和发送自定义..._tcap包

解决linux指令“没有那个文件或目录”-程序员宅基地

文章浏览阅读1.5w次。本文介绍了一种面对linux指令“没有那个文件或目录”时的自查和解决方法_没有那个文件或目录

eslint配置大全_eslint 参数-程序员宅基地

文章浏览阅读462次。{"rules" : { // 定义对象的set存取器属性时,强制定义get "accessor-pairs": 2, // 指定数组的元素之间要以空格隔开(,后面), never参数:[ 之前和 ] 之后不能带空格,always参数:[ 之前和 ] 之后必须带空格 "array-bracket-spacing": [2, "never"], // 在块级作用域外访问块内定义的变量是否报错提示 "block-scoped-var": 0, // if while functi._eslint 参数

Mac安装anaconda后两个python版本共存,在终端pip无法为各自python版本倒入模块的解决办法_mac anaconda 配置两个 python-程序员宅基地

文章浏览阅读3.7k次。问题描述:使用anaconda来管理包,十分方便,也可以到达使得python2和python3共存的目的,但当导入anaconda以外的包时,可能会产生一些问题,在近期学习中,由于会用到scikit-learn模块,此模块为python2.7版本的模块,在使用终端通过pip安装时,ppip默认为为python3安装包。对此,可以尝试用pycharm导入此模块:打开pycharm,选择file菜_mac anaconda 配置两个 python

随便推点

可变模板参数_template<typename t, typename ...args>-程序员宅基地

文章浏览阅读1.1k次。背景在 C++11 之前,无论是类模板还是函数模板,都只能按其指定的样子,接受一组固定数量的模板参数;而C++11 加入了新的表示方法,允许任意个数、任意类别的模板参数,同时也不需要在定义时将参数的个数固定。可变参数模板和普通模板的语义是一样的,只是写法上稍有区别,声明可变参数模板时需要在typename或class后面带上省略号“...”template<typename....._template

css实现超出长度文字自动隐藏或用省略号表示_css a标签超出宽度自动隐藏-程序员宅基地

文章浏览阅读269次。HTML<a href="" target="_blank"> 业务需求分析书-系统营业日扎帐报表、收费汇总表及收费明细表 </a>cssa{overflow: hidden;text-overflow: ellipsis;white-space: nowrap;width: 100%;display: inline-block;}overflow:..._css a标签超出宽度自动隐藏

前向纠错(FEC)之纠删码原理(EC)_向前纠错的编码过程-程序员宅基地

文章浏览阅读2k次。References:纠删码解析_向前纠错的编码过程

(六)使用Transformers进行情感分析_基于transformer的情感分析-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏53次。文章目录准备数据搭建模型训练模型推断完整代码在本笔记本中我们将使用在本论文中介绍的Transformer模型。具体来说,我们将使用来自这篇论文中的BERT(Bidirectional Encoder Representations from Transformers)模型。Transformer模型比之前笔记中介绍的任何模型都要大得多。因此,我们将使用transformers library获得预先训练的transformers,并使用它们作为我们的嵌入层。我们将冻结(而不是训练)transformer_基于transformer的情感分析

Computational Optimal Transport笔记——Introduction_最优运输理论 偏微分方程-程序员宅基地

文章浏览阅读1.2k次。Computational Optimal Transport笔记——Introduction最优运输可以看做是更一般的最短路问题最短路原则:当在给定的点处有一个商品、人或者一些信息,这些东西需要被送到目标点。我们希望使用最少的工作量完成任务。(我们可以沿着直线或者测地线移动)最忧运输理论将这个问题一般化,一个人不是一次移动一个物品而是同时移动多个物品。经证明,有计划地运输一堆个体到指定的位..._最优运输理论 偏微分方程

springboot2.0之配置spring security记住我(rememberMe功能)不起作用的原因_spring security记住我功能有令牌不实现-程序员宅基地

文章浏览阅读3.4k次。刚入门spring security,感觉东西有点多,不好好研究出了问题都不知道为什么。rememberMe功能配置核心代码(有问题的): protected void configure(HttpSecurity http) throws Exception { List<SysPermission> allPermission = permissionFe..._spring security记住我功能有令牌不实现

推荐文章

热门文章

相关标签