SpringBoot 将配置文件挂到 jar 包外面的操作方法
作者:ACGkaka_ 发布时间:2023-11-17 11:09:32
一、SpringBoot 指定配置文件路径:
在 SpringBoot 中,可以将配置文件放在 jar 包外面,这样可以方便地修改配置而不需要重新打包和部署。
下面是指定配置文件目录的 几 种方法: (按生效优先级从高到低排序)
1)使用命令行参数:
在启动应用程序时,可以使用 --spring.config.location
或 -Dspring.config.location
命令行参数来指定配置文件的路径,例如:(config 后面的 /
不可省略)
java -jar test.jar --spring.config.location=/opt/app/config/
补充:FHS将/opt定义为 “为安装附加应用软件包而保留”。所以这里选择 /opt
文件夹来存放应用程序的配置文件。
2)使用环境变量:
可以设置 SPRING_CONFIG_LOCATION
环境变量来指定配置文件的路径,例如:
export SPRING_CONFIG_LOCATION=/opt/app/config/
java -jar test.jar
3)使用外部配置文件:
方法一: 在应用程序(jar包)
启动命令执行目录下
创建一个名为config
的文件夹,然后将配置文件放在该文件夹中。方法二: 在应用程序(jar包)
同级目录下
创建一个名为config
的文件夹,然后将配置文件放在该文件夹中。在代码的配置文件application.properties
或application.yml
中添加以下行:
spring.config.name=application
spring.config.location=classpath:/,file:./config/
方法三: 在应用程序(jar包)
同级目录下
直接放properties
或yml
配置文件。方法四: 在应用程序(jar包)内部的
classpath
的同级目录下
,创建config
文件夹,然后放properties
或yml
配置文件。方法五: 在应用程序(jar包)内部的
classpath
的同级目录下
,然后直接放properties
或yml
配置文件。
注意:以上方法可以组合使用,例如,可以在命令行参数和环境变量中同时指定配置文件的路径,执行时命令行参数的优先级最高。
二、SpringBoot 配置文件生效的优先级排序:
java -jar
命令行中,通过--spring.config.location
参数指定的方式优先级最高。设置
SPRING_CONFIG_LOCATION
环境变量来指定配置文件的路径是次优先级。在执行
java -jar
命令同级目录下的config
文件夹是第三优先级。注意:如果
java -jar
命令不是在项目 jar 包 同级目录执行的话,在项目 jar 包同级目录下的config
文件夹是不生效的。项目 jar 包中
properties
或yml
文件中指定spring.config.location
配置文件夹是第四优先级。项目 jar 包同级下直接放
properties
文件是第五优先级,直接把配置文件放到 jar 包的同级目录。项目内部的
classpath
同级config
文件夹是第六优先级,在 classpath 下建一个 config 文件夹,然后把配置文件放进去。项目内部的
classpath
同级放properties
文件是最低优先级,是在classpath
下直接放配置文件。
SpringBoot 默认是优先读取java -jar
命令同级目录下的一个 config/application.properties
文件的。
在项目内 src/main/resources
文件夹下创建的 application.properties
文件的优先级是最低的。
整理完毕,完结撒花~ 🌻
参考资料地址:
1.java配置文件放置到jar外_Spring Boot配置文件放在jar外部,https://blog.csdn.net/weixin_39885690/article/details/114888138
2.Spring Boot 把配置文件和日志文件放到jar外部,https://blog.csdn.net/weixin_45433031/article/details/127279358
来源:https://blog.csdn.net/qq_33204709/article/details/129405315
猜你喜欢
- 概述什么是动态编程?动态编程解决什么问题?Java中如何使用?什么原理?如何改进?(需要我们一起探索,由于自己也是比较菜,一般深入不到这个程
- IDEA安装后找不到.vmoptions文件在安装IDEA后在C盘的C:\Users\你的电脑用户名.IntelliJIdea2019.1\
- 前言开发中,免不了会用到多边形、多角星等图案,比较常用的多边形比如雷达图、多角星比如评价星级的五角星等,本篇文章就使用Flutter绘制封装
- 接收到这样一个需求,就是英文名字中firstName和lastName,其中任何一个为null,就返回Empty。刚拿到需求,这不简单,if
- 目前常用的ORM框架有 Mybatis(batis)、MybatisPlus,Hibernate、Jpa等几个框架,今天就简单介绍一下搭建M
- 本文实例为大家分享了C++实现企业职工工资管理系统的具体代码,供大家参考,具体内容如下课程设计目的和要求工资管理要和人事管理相联系,生成企业
- 问题描述:String preStr = "a.b.c"; // 这里要把该字符串按小圆点进行分割,成"a&q
- 在谈 Volatile 之前,我们先回顾下 Java 内存模型 的三要素:原子性、可见性、有序性,也就是大家常提到的并发编程三要素。并发编程
- 前言最常用的对字符串操作的类有三个,分别是String,StringBuilder,StringBuffer,下面将会详细的说说这三个类..
- webp格式图片webp格式图片是google推出的,相比jpg png有着巨大的优势,同样质量的图片webp格式的图片占用空间更小,在像电
- SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-
- 1、普通用户与系统管理员用户的权限要有严格的区分。如果一个普通用户在使用查询语句中嵌入另一个Drop Table语句,那么是否允许
- 本篇给大家详细讲解了MTKAndroid平台开发流程,大致分为44个步骤,我们把每个步骤的命令详细讲解了下,一起来学习下。1.拷贝代码仓库从
- 本文实例为大家分享了Android微信摇一摇功能的实现方法,供大家参考,具体内容如下import java.util.ArrayList;
- 把char数组转换成String调用reverseStr()传入一个字符串"let’s"
- 英文设置加粗可以在xml里面设置: <SPAN style="FONT-SIZE: 18px">androi
- 背景大家在使用Selenium + Chromedriver爬取网站信息的时候,以为这样就能做到不被网站的反爬虫机制发现。但是实际上很多参数
- 可以给已有实体类动态的添加字段并返回新的实体对象,不影响原来的实体对象结构。添加依赖<dependency> &n
- 前言Java8 由Oracle在2014年发布,是继Java5之后最具革命性的版本。Java8吸收其他语言的精髓带来了函数式编程,lambd
- 简介mutable(可变)和immutable(不可变)对象是我们在java程序编写的过程中经常会使用到的。可变类型对象就是说,对象在创建之