SpringBoot 项目部署 (配置文件分离)
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. 参考
SpringBoot 项目部署 (配置文件分离)的更多相关文章
- 2019-03-26 SpringBoot项目部署遇到跨域问题,记录一下解决历程
近期SpringBoot项目部署遇到跨域问题,记录一下解决历程. 要严格限制,允许哪些域名访问,在application.properties文件里添加配置,配置名可以自己起: cors.allowe ...
- React+SpringBoot项目部署
静态资源访问配置 https://www.jianshu.com/p/b6e0a0df32ec https://segmentfault.com/q/1010000012240531/a-102000 ...
- springboot项目部署云服务器
Springboot项目部署云服务器 springboot项目部署云服务器还是挺简单的 首先你要有java运行环境,就是jdk的安装,如果还没有装没有参考安装:阿里云ECS建网站(建站)超详细全套完整 ...
- 多个springboot项目部署在同一tomcat上,出现jmx错误
多个springboot项目部署在同一tomcat上,出现jmx错误 原因:因为jmx某些东西重复,禁用jmx就可以了 endpoints.jmx.unique-names=true
- springboot项目部署(war包)
将springboot项目打包成war,并且部署到tomcat.比较麻烦,自己踩的坑也比较多.算了一下,找bug的时间,有两天熬到凌晨2点. 修改pom.xml使得打包成war <groupId ...
- springboot项目部署到独立tomcat的爬坑集锦
目录 集锦一:普通的springboot项目直接部署jar包 集锦二:springboot项目不能直接打war包部署 集锦三:因为tomcat版本问题导致的lombok插件报错:Invalid byt ...
- 多个springboot项目部署到tomcat,Error deploying web application archive
每个springboot单独部署到tomcat下可以正常启动,多个一个就发生异常 Error deploying web application archive 解决:配置文件加上配置区分 sprin ...
- springboot项目部署到tomcat步骤以及常见问题
------------恢复内容开始------------ 本文分为两个部分,一,是打包的步骤,二,是我项目中所遇到的问题以及解决方法 一. 打包为war包步骤 1.修改打包方式为war 在pom. ...
- SpringBoot 项目部署(初级)
之前的项目一直在本地电脑上写,最近需要将项目部署到服务器上进行联调测速度.于是,在网上搜集资料后简单的进行一下总结. 由于本次打包部署是为了测试,于是很多内容做的还不算详尽,只是将项目简单的打包为ja ...
随机推荐
- 承上启下继往开来,Python3上下文管理器(ContextManagers)与With关键字的迷思
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_217 在开发过程中,我们会经常面临的一个常见问题是如何正确管理外部资源,比如数据库.锁或者网络连接.稍不留意,程序将永久保留这些资 ...
- C# 虚方法、抽象方法
一.虚方法(virtual) 作用:当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法. 示例: class Person { public virtual void XXX() { Con ...
- 6.8 NOI 模拟
\(T1\ edge\) 考虑\(O(q\times n\times \log n)\)的暴力 暴力二分,直接树上差分 #define Eternal_Battle ZXK #include<b ...
- Apache Hudi vs Delta Lake:透明TPC-DS Lakehouse性能基准
1. 介绍 最近几周,人们对比较 Hudi.Delta 和 Iceberg 的表现越来越感兴趣. 我们认为社区应该得到更透明和可重复的分析. 我们想就如何执行和呈现这些基准.它们带来什么价值以及我们应 ...
- 我分析30w条数据后发现,西安新房公摊最低的竟是这里?
前两天一个邻居发出了灵魂质问:"为什么我买的180平和你的169平看上去一样大?" "因为咱俩的套内面积都是138平......" 我们去看房子,比较不同楼盘的 ...
- NetCore路由的Endpoint模式
IdentityServer里有各种Endpoint,如TokenEndpoint,UserInfoEndpoint,Authorize Endpoint,Discovery Endpoint等等.E ...
- WTL_Freecell绿色版
WTL_Freecell绿色版-用户手册 1.程序特点和使用环境介绍 (1).版本信息 WTL_Freecell-Release05-v1.3-20190129 (WTL空当接龙绿色版v1.3),By ...
- 主流前沿的开源监控和报警系统Prometheus+Grafana入门之旅
Prometheus概述 定义 Prometheus 官网地址 https://prometheus.io/ Prometheus 官网文档地址 https://prometheus.io/docs/ ...
- Luogu1083 借教室 (线段树)
当根都<0,就不行了 #include <iostream> #include <cstdio> #include <cstring> #include &l ...
- 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 ...