如果只是想在打成jar包的时候单独把配置文件分离出来,这个其实简单。按照规定,Spring Boot 的配置文件加载优先级如下:
- 当前目录下的
config
子目录 - 当前目录
- classpath下的
config
目录 - classpath根路径
#####优先级自上而下递减。
所以,要实现配置文件分离,只需要在编译出来的jar文件的同级目录创建一个config
目录,然后把配置文件复制到该目录即可,运行时,会优先使用config
目录下的配置文件。
参考文档:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
###优化
如果只是像上边那样配置,jar文件当中其实还有一份配置文件,只不过加载的时候被优先级更高的config
目录的配置文件覆盖了。如果要消除jar文件中的配置文件,可以在pom.xml
文件中指定剔除的配置文件,示例如下:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.yml</exclude>
</excludes>
</resource>
</resources>
</build>
这样在打包的时候就把.properties
,.yml
类型的配置文件都过滤掉了。
如果要实现依赖jar包的分离,配置麻烦一些,可参考另一篇博客 点我查看O(∩_∩)O