1. SpringBoot 配置文件加载
SpringBoot 加载配置文件的优先级如下:
- 当前目录下的
config子目录; - 当前目录;
classpath下的config文件夹;classpath根路径;
优先级从上到下依次降低,高优先级的配置文件会优先加载,覆盖掉低优先级的配置文件。
当前目录:指的是 执行启动指令的 的目录。
2. 配置文件分离 - 覆盖法
依据上述配置文件加载优先级,我们最简单的实现配置文件和打包文件分离的方法就是:根据配置文件优先级,在jar包外创建一个配置文件,将jar包内的配置文件覆盖掉。
首先,我们看一下打包好的jar包:

可以看到,配置文件其实是在classpath下的根路径,也就是说在最低优先级。由于我们要实现配置文件和jar包分离,所以我们有两种方式实现覆盖jar包中的配置文件:
- 在
jar包同级目录下创建config文件夹,并将配置文件放在该文件夹下;(优先级最高) - 将配置文件放入
jar包的同级目录下;(优先级次之)
3. 配置文件分离 - 配置文件不打包
上述方法中, jar 包当中其实保留的有配置文件,只不过加载的时候被优先级更高的配置文件覆盖了。
如果想要消除jar文件中的配置文件, 可以在pom.xml 文件中指定剔除的配置文件, 示例如下:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.yml</exclude>
</excludes>
</resource>
</resources>
</build>
这样在打包的时候就把.properties, .yml 类型的配置文件都过滤掉了。
4. 参考
本文来自博客园,作者:睡觉不打呼,转载请注明原文链接:https://www.cnblogs.com/404er/p/springboot_packing_application.html
浙公网安备 33010602011771号