关于SpringBoot对application.properties的启动顺序

因为要使用这个application.prperties修改一些参数 能够在生产环境上去生效,

参考博客:https://blog.csdn.net/wo541075754/article/details/52540455 博主:二师兄-公众号-程序新视界

spring boot默认允许自定义的application.properties存在的位置主要是四个地方:

1.jar包同级目录的"config"目录下(适合在生产环境)

2.jar包同级目录下(适合在生产环境)

3.classpath根目录的 config目录下(适合在开发环境)

4.classpath的根目录下(适合在开发环境)

他们执行的优先级就是1->2->3 也就是先去找jar包同级目录下的config下的配置文件,再去同级目录下找.....以此类推

最开始犯了一个错,我再打包之前把application.prperties放在了外部 而jar包没有,虽然这样打包能够成功,但是配置信息是没有的,不应该这么去处理,应该将配置文件也打进去,只不过在jar包运行的同级目录下再防止一个外部的配置文件,根据加载顺序的优先级就可以了。

附图:

以这个daoguangguo为名的jar包为例的

关于SpringBoot对application.properties的启动顺序

我分别创建了三个properties在config目录和同级目录以及jar包中

config下的参数为:

关于SpringBoot对application.properties的启动顺序

第一次运行:

关于SpringBoot对application.properties的启动顺序

然后删除config目录

关于SpringBoot对application.properties的启动顺序

看同级目录下的application.properties

关于SpringBoot对application.properties的启动顺序

第二次运行:

关于SpringBoot对application.properties的启动顺序

然后把同级的application.properties删除了

再次运行:

关于SpringBoot对application.properties的启动顺序

这次就是直接指向的是jar包内部的application.properties了。

以上是为了说明一个顺序加载的优先级,特此记录,以免忘记。