##springboot默认配置文件加载循序官方说明上为
1. 当前项目目录下的一个/config子目录
2. 当前项目目录
3. 项目的resources即一个classpath下的/config包
4. 项目的resources即classpath根路径(root)
那么项目打包为jar包,并且在jar包同级目录放置配置文件的优先级应该**大于**jar内部的配置文件
目录如下
外置application.properties
server.port=8888
内置application.properties
server.port=8080
此时通过cmd启动项目
java -jar demo-0.0.1-SNAPSHOT.jar
输出的端口为**8888**(外部配置文件的端口),在windows和linux下都是**同样**的结果,说明外部配置文件优先级大于内部,**这是正常的,符合预期
**
#但是
#重点来了
当内部配置文件application.properties加上了配置文件环境(spring.profiles.active)选择时
server.port=8080
spring.profiles.active=dev
在windows平台下,输出端口为**8888**
在linux平台下,输出端口却为**8080**
这说明在linux平台下,外部配置文件失效了,但是在windows下**依然有效,**
有没有谁知道,为什么加了spring.profiles.active以后在Linux下外部配置文件就失效了,但是windows平台依然有效
看看路径分割符是不是写错了,windows是\\,linux是/
你试试主配置文件中只保留spring.profiles.active=xxx属性
在Docker容器中运行Spring Boot的jar包 jar外的配置文件无法生效 - 剑握在手 - 博客园 (cnblogs.com)