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

SpringBoot 项目部署 (配置文件分离)的更多相关文章

  1. 2019-03-26 SpringBoot项目部署遇到跨域问题,记录一下解决历程

    近期SpringBoot项目部署遇到跨域问题,记录一下解决历程. 要严格限制,允许哪些域名访问,在application.properties文件里添加配置,配置名可以自己起: cors.allowe ...

  2. React+SpringBoot项目部署

    静态资源访问配置 https://www.jianshu.com/p/b6e0a0df32ec https://segmentfault.com/q/1010000012240531/a-102000 ...

  3. springboot项目部署云服务器

    Springboot项目部署云服务器 springboot项目部署云服务器还是挺简单的 首先你要有java运行环境,就是jdk的安装,如果还没有装没有参考安装:阿里云ECS建网站(建站)超详细全套完整 ...

  4. 多个springboot项目部署在同一tomcat上,出现jmx错误

    多个springboot项目部署在同一tomcat上,出现jmx错误 原因:因为jmx某些东西重复,禁用jmx就可以了 endpoints.jmx.unique-names=true

  5. springboot项目部署(war包)

    将springboot项目打包成war,并且部署到tomcat.比较麻烦,自己踩的坑也比较多.算了一下,找bug的时间,有两天熬到凌晨2点. 修改pom.xml使得打包成war <groupId ...

  6. springboot项目部署到独立tomcat的爬坑集锦

    目录 集锦一:普通的springboot项目直接部署jar包 集锦二:springboot项目不能直接打war包部署 集锦三:因为tomcat版本问题导致的lombok插件报错:Invalid byt ...

  7. 多个springboot项目部署到tomcat,Error deploying web application archive

    每个springboot单独部署到tomcat下可以正常启动,多个一个就发生异常 Error deploying web application archive 解决:配置文件加上配置区分 sprin ...

  8. springboot项目部署到tomcat步骤以及常见问题

    ------------恢复内容开始------------ 本文分为两个部分,一,是打包的步骤,二,是我项目中所遇到的问题以及解决方法 一. 打包为war包步骤 1.修改打包方式为war 在pom. ...

  9. SpringBoot 项目部署(初级)

    之前的项目一直在本地电脑上写,最近需要将项目部署到服务器上进行联调测速度.于是,在网上搜集资料后简单的进行一下总结. 由于本次打包部署是为了测试,于是很多内容做的还不算详尽,只是将项目简单的打包为ja ...

随机推荐

  1. 承上启下继往开来,Python3上下文管理器(ContextManagers)与With关键字的迷思

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_217 在开发过程中,我们会经常面临的一个常见问题是如何正确管理外部资源,比如数据库.锁或者网络连接.稍不留意,程序将永久保留这些资 ...

  2. C# 虚方法、抽象方法

    一.虚方法(virtual) 作用:当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法. 示例: class Person { public virtual void XXX() { Con ...

  3. 6.8 NOI 模拟

    \(T1\ edge\) 考虑\(O(q\times n\times \log n)\)的暴力 暴力二分,直接树上差分 #define Eternal_Battle ZXK #include<b ...

  4. Apache Hudi vs Delta Lake:透明TPC-DS Lakehouse性能基准

    1. 介绍 最近几周,人们对比较 Hudi.Delta 和 Iceberg 的表现越来越感兴趣. 我们认为社区应该得到更透明和可重复的分析. 我们想就如何执行和呈现这些基准.它们带来什么价值以及我们应 ...

  5. 我分析30w条数据后发现,西安新房公摊最低的竟是这里?

    前两天一个邻居发出了灵魂质问:"为什么我买的180平和你的169平看上去一样大?" "因为咱俩的套内面积都是138平......" 我们去看房子,比较不同楼盘的 ...

  6. NetCore路由的Endpoint模式

    IdentityServer里有各种Endpoint,如TokenEndpoint,UserInfoEndpoint,Authorize Endpoint,Discovery Endpoint等等.E ...

  7. WTL_Freecell绿色版

    WTL_Freecell绿色版-用户手册 1.程序特点和使用环境介绍 (1).版本信息 WTL_Freecell-Release05-v1.3-20190129 (WTL空当接龙绿色版v1.3),By ...

  8. 主流前沿的开源监控和报警系统Prometheus+Grafana入门之旅

    Prometheus概述 定义 Prometheus 官网地址 https://prometheus.io/ Prometheus 官网文档地址 https://prometheus.io/docs/ ...

  9. Luogu1083 借教室 (线段树)

    当根都<0,就不行了 #include <iostream> #include <cstdio> #include <cstring> #include &l ...

  10. HDU 1542/POJ 1151 Atlantis (scaning line + segment tree)

    A template of discretization + scaning line + segment tree. It's easy to understand, but a little di ...