1. SpringBoot 配置文件加载

SpringBoot 加载配置文件的优先级如下:

  1. 当前目录下的config 子目录;
  2. 当前目录;
  3. classpath下的config文件夹;
  4. classpath 根路径;

优先级从上到下依次降低,高优先级的配置文件会优先加载,覆盖掉低优先级的配置文件。

当前目录:指的是 执行启动指令的 的目录。

2. 配置文件分离 - 覆盖法

依据上述配置文件加载优先级,我们最简单的实现配置文件和打包文件分离的方法就是:根据配置文件优先级,在jar包外创建一个配置文件,将jar包内的配置文件覆盖掉

首先,我们看一下打包好的jar包:

可以看到,配置文件其实是在classpath下的根路径,也就是说在最低优先级。由于我们要实现配置文件和jar包分离,所以我们有两种方式实现覆盖jar包中的配置文件:

  1. jar包同级目录下创建config文件夹,并将配置文件放在该文件夹下;(优先级最高)
  2. 将配置文件放入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. 参考

  1. Spring Boot 打包分离配置文件
  2. Spring Boot Reference Documentation

最新文章

  1. 动态规划VS分治策略
  2. 【转】IOS屏幕旋转与View的transform属性之间的关系,比较底层
  3. 深入理解计算机系统家庭作业汇总 20135301&amp;&amp;20135328
  4. Ctrl+Shift+F12切换最大化编辑器
  5. NeHe OpenGL教程 第八课:混合
  6. 详解C/C++函数指针声明 ( *( void(*)())0)();
  7. PC-大概最全的黑客工具表了
  8. JSON未定义解决办法
  9. (三)跟我一起玩Linux网络服务:DHCP服务配置之主服务器配置
  10. 获取contenteditable的内容 对html进行处理 兼容 chrome、IE、Firefox
  11. debian下samba配置
  12. 用jQuery实现鼠标在table上移动进行样式变化
  13. style中position的属性值具体解释
  14. MVC 用扩展方法执行自定义视图,替代 UIHint
  15. java&#160;实现Excel压缩成Zip导出
  16. 超文本传输​​协议 - HTTP / 1.1(Hypertext Transfer Protocol -- HTTP/1.1)之方法定义(Method Definitions)
  17. Idea中开启assert断言
  18. 入侵检测中需要监控的注册表路径研究(Windows Registry Security Check)
  19. NodeJs 学习笔记(一)Wedding 项目搭建
  20. [Linux] 如何禁止使用口令只允许使用密钥建立 SSH 连接

热门文章

  1. kubernetes之HPA
  2. Mybatis源码解读-插件
  3. 第六天python3 函数、参数及参数解构(一)
  4. CF Edu Round 131 简要题解 (ABCD)
  5. 栈Stack
  6. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(11)-Fiddler设置安卓手机抓包,不会可是万万不行的!
  7. Vue 列动态取值
  8. Flask 运行报错 HTTPStatus.BAD_REQUEST This site can’t provide a secure connection
  9. java-分支结构(四种基本分支结构的认识)
  10. CSS 布局(一):Flex 布局