服务部署启动时,我们经常需要指定配置文件启动.
一般有四种,优先级如下
spring.config.location > spring.profiles.active > spring.config.additional-location > 默认的 application.yml
1.spring.config.location 外部配置文件优先级最高
一般配置文件在服务器上面,而不是读取jar包里面的配置文件,
比如
nohup java --spring.config.location=/data/application-test.yml -jar logaudit-api-provider.jar > /dev/null 2>&1 &
这个时候就会去优先读取/data/目录下的application-test.yml文件,而不是项目jar包里面的application-test.yml
2.spring.profiles.active 指定读取jar包里面的哪个配置文件
nohup java --spring.profiles.active=test -jar logaudit-api-provider.jar > /dev/null 2>&1 &
这个时候会去读取jar包里面的application-test.yml
3.spring.config.additional-location 指定配置文件夹路径
这个我没有用过,一般是用的上面两个或者下面第四个默认
nohup java --spring.config.additional-location=/data/ -jar logaudit-api-provider.jar > /dev/null 2>&1 &
这个时候会去扫描服务器/data/目录下面的文件作为配置文件,如果有data下面有多个配置文件呢,比如同时有application-test.yml和application-pro.yml.那么会读取哪个?
如果data目录下只有application-test.yml.那应该和第一种是一样的作用
比较懒,就没有去尝试了
4.默认的application.yml 读取代码指定的配置文件
nohup java -jar logaudit-api-provider.jar > /dev/null 2>&1 &
没有指定的时候,那么就会去读取jar包里面的application.yml,它自己指定了哪个就读取哪个,以代码配置为准