深入springboot加载配置文件顺序,以及多文件加载

深入springboot加载配置文件顺序,以及多文件加载

1.properties或yml加载的位置,优先级

file:./config/
file:./
classpath:/config/
classpath:/

以上是按照优先级从高到低的顺序,所有位置的文件都会被加载高优先级配置内容会覆盖低优先级配置的内容

例如这个路径,两个properties都会被加载,but,config目录下面的优先级高,所以占主导地位的是config目录下的。由于这几个文件都会被加载,所以是互补的配置(类似于笛卡尔积? )。

口诀,外到内,config到无。

同时还可以使用Spring,config,location= “一个绝对路径”加载

2.多个文件加载(properties.active)

application.properties

spring.profiles.active=(一个application-xxx.properties的后缀)xxx;
#这样application-xxx.properties就能被加载

3.多个文件加载(ymal,----active)

ymal中使用三个"-":—来进行分割文本块

server:
	port: 8081
spring:
	profiles:
		active: xxx
---
server:
	port: 8083
spring:
	profiles: xxx
#这样就会调用8083的服务器

4.使用命令行的方式

在命令行参数里面添加

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2lr7WFv1-1600783103731)(C:\Users\13710795181\Desktop\recent\命令行.png)]

或者在虚拟机参数里面增加VM_Option

5.外部配置

1.命令行参数(打包完成后java -jar运行你要走的 —server.port=8087)这样就可以修改端口号了

假如配置多的话应该用空格分开—server.port=8087 —server.context-path=/abc

假如配置究极多的话 把properties文件放在和jar包的同目录下,不输入参数,跑起来的就是jar包旁边的

2.来自java:comp/env的JNDI属性

3.java系统属性

4.操作系统环境变量

优先加载带profile的

5.jar包外部的application-{profile}.propertise或application.yml(带spring.profile)配置文件

6.jar包内部的application-{profile}.propertise或application.yml(带spring.profile)配置文件

再来加载不带profile的

7.jar包外部的application.propertise或application.yml(不带spring.profile)配置文件

8.jar包内部的application.propertise或application.yml(不带spring.profile)配置文件

9.@Configuration注解类上的@PropertySource

10.通过SpringApplication,setDefaultProperties来指定默认的属性

优先级从上到下!优先加载上面的,

可以去官方文档看~~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值