- 1 位置相同时,后缀不同的优先级
- 2 配置文件在不同位置时的优先级
- 2.1 默认启动,配置文件打包进jar包
- 2.2 在jar包同级目录下也有一份配置文件
- 2.3 docker-compose部署时,docker-compose文件中也包含配置(重点)
- 3 结论
当properties、yaml和yml三种文件路径相同时,三个文件中的配置信息都会生效,但是当三个文件中有配置信息冲突时,加载顺序是:
yml > yaml > properties
2 配置文件在不同位置时的优先级创建一个springboot项目
controller层
@RestController @RequestMapping public class TestController { @Value("${person.name}") private String name; @GetMapping("/test") public String test(){ return name; } }
yml配置文件
server: port: 7777 person: name: lvxy2.1 默认启动,配置文件打包进jar包
默认启动时,无其他位置配置文件,则加载默认的配置文件
java -jar xxx.jar
jar包同一目录下优先级大于默认配置
application.yml
server: port: 7777 person: name: lvxy
启动
docker-compose中优先级最高,而且同一docker-compose文件中后面配置会覆盖前面配置
项目目录
Dockerfile文件
FROM daocloud.io/library/java:8-jdk-alpine WORKDIR /code COPY 11-ymltest-0.0.1-SNAPSHOT.jar 11-ymltest-0.0.1-SNAPSHOT.jar COPY application.yml application.yml CMD ["java","-jar","11-ymltest-0.0.1-SNAPSHOT.jar"]
application.yml
server: port: 7777 person: name: lvxy
docker-compose文件
version: "3.1" services: java: build: . environment: person.name: liujian environment: person.name: liao ports: - 7777:7777
构建运行
[root@k8s-master java]# docker-compose up -d --build Creating network "java_default" with the default driver Building java Step 1/5 : FROM daocloud.io/library/java:8-jdk-alpine ---> 3fd9dd82815c Step 2/5 : WORKDIR /code ---> Using cache ---> 7fc06517d955 Step 3/5 : COPY 11-ymltest-0.0.1-SNAPSHOT.jar 11-ymltest-0.0.1-SNAPSHOT.jar ---> Using cache ---> 28c708480758 Step 4/5 : COPY application.yml application.yml ---> 8ed5d1b0474b Step 5/5 : CMD ["java","-jar","11-ymltest-0.0.1-SNAPSHOT.jar"] ---> Running in 936c99ff0a8c Removing intermediate container 936c99ff0a8c ---> b4a8fab8fee8 Successfully built b4a8fab8fee8 Successfully tagged java_java:latest Creating java_java_1 ... done
结果:
docker-compose.yml > ./application.yml > resoures/application.yml
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)