springboot(五) 加载配置文件优先级顺序
github代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-service
1.springboot配置文件的加载位置
1.1 springboot启动会扫描一下位置的application.properties或者application.yml作为默认的配置文件
工程根目录:./config/
工程根目录:./
classpath:/config/
classpath:/
加载的优先级顺序是从上向下加载,并且所有的文件都会被加载,高优先级的内容会覆盖底优先级的内容,形成互补配置 也可以通过指定配置spring.config.location来改变默认配置,一般在项目已经打包后,我们可以通过指令
java -jar xxxx.jar --spring.config.location=D:/kawa/application.yml来加载外部的配置
我们来在IDEA里面实验一下优先级加载
先配置classpath:/appliaction.yml 的服务端口8099

再新建classpath:/config/application.yml配置文件,指定服务端口8090
启动工程看下控制台的输出,发现config里面的配置生效了,因为优先级高
如果大家想测试上面排一二的优先级可以自行测试,这边就不一 一测试了,不过需要注意的是在工程根路径下或者根路径的config下面的配置文件,在工程打包时候不会被打包进去,大家可以自己测试看下。
2.springboot外部配置的加载顺序(参考官方文档)
2.1 springboot外部配置加载顺序如下,优先级从高到底,并且高优先级的配置覆盖底优先级的配置形成互补配置
2.1.1 命令行参数
=> 比如:java -jar xxxx.jar --server.port=8087 --server.context-path=/show 多个配置中间用空格分开 由jar包外向jar包内进行加载,比如和工程平级目录下面的配置文件优先级高于jar包内部的配置文件

优先加载带profile
2.1.2 jar包外部的application-{profile}.propertie或application.yml(带spring.profile)配置文件
2.1.3 jar包内部的application-{profile}.propertie或application.yml(带spring.profile)配置文件
再来加载不带profile
2.1.4 jar包外部的application.propertie或application.yml(不带spring.profile)配置文件
2.1.5 jar包内部的application.propertie或application.yml(不带spring.profile)配置文件
springboot(五) 加载配置文件优先级顺序的更多相关文章
- Linux下文件 ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 的区别 | 用户登录后加载配置文件的顺序
转自 https://blog.csdn.net/secondjanuary/article/details/9206151 文件说明: /ect/profile 此文件为系统的每个用户设置环境信息, ...
- MySQL加载配置文件的顺序
MySQL5.6启动时,按照下表,从上往下的顺序加载配置文件: File Name Purpose /etc/my.cnf Global options /etc/mysql/my.cnf Globa ...
- spring boot加载配置文件的顺序
四个默认加载配置文件地方的优先级,四个文件相同配置有优先级概念 不同位置相互补充 外部配置文件不建议使用,不符合maven项目结构,打包会打不进去
- MySQL(window10)加载配置文件的顺序
mysql加载配置的顺序为:(mysql --help中有详细的说明) C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf D:***\my ...
- struts2框架加载配置文件的顺序
struts-default.xml:该文件保存在struts2-core-x.x.x.jar文件中: struts-plugin.xml:该文件保存在 struts2-Xxx-x.x.x.jar等S ...
- springboot Properties加载顺序源码分析
关于properties: 在spring框架中properties为Environment对象重要组成部分, springboot有如下几种种方式注入(优先级从高到低): 1.命令行 java -j ...
- SpringBoot系列——加载自定义配置文件
前言 SpringBoot启动时默认加载bootstrap.properties或bootstrap.yml(这两个优先级最高).application.properties或application. ...
- SpringBoot是如何加载配置文件的?
前言 本文针对版本2.2.0.RELEASE来分析SpringBoot的配置处理源码,通过查看SpringBoot的源码来弄清楚一些常见的问题比如: SpringBoot从哪里开始加载配置文件? Sp ...
- Springboot 加载配置文件源码分析
Springboot 加载配置文件源码分析 本文的分析是基于springboot 2.2.0.RELEASE. 本篇文章的相关源码位置:https://github.com/wbo112/blogde ...
随机推荐
- Spring MVC的Hello World例子
以下内容引用自http://wiki.jikexueyuan.com/project/spring/mvc-framework/spring-mvc-hello-world-example.html: ...
- 分布式RPC框架性能大比拼
https://github.com/grpc/grpc http://colobu.com/2016/09/05/benchmarks-of-popular-rpc-frameworks/ http ...
- 【python】SHA1 算法
http://blog.163.com/sh_wenfen/blog/static/99708242007231103936938/
- RabbitMQ Hello World
RabbitMQ Hello World rabbitmq operation: C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.2\sbin ...
- Ansible 详细用法说明(二)
setup:获取指定主机的facts. ===================================facts就是变量,内建变量 .每个主机的各种信息,cpu颗数.内存大小等.会存在fact ...
- IDEA失效的解决办法
1.根据下图进行操作即可解决
- [IT新应用]brave浏览器
https://www.brave.com/about.html The web has become a different place. With the ad-tech ecosystem ou ...
- Semantic Parsing(语义分析) Knowledge base(知识图谱) 对用户的问题进行语义理解 信息检索方法
简单说一下所谓Knowledge base(知识图谱)有两条路走,一条是对用户的问题进行语义理解,一般用Semantic Parsing(语义分析),语义分析有很多种,比如有用CCG.DCS,也有用机 ...
- JSON with Java
work with json-lib.jar import net.sf.json.JSONArray;import net.sf.json.JSONException;import net.sf.j ...
- SoapUI中Code多行显示设置
你们的SoapUI 有设置下面的选项吗? Before adding your project, we recommend that you enable the following ReadyAPI ...

