springboot怎么在外部覆盖当前jar中的配置文件applocation.yml?

一、怎么覆盖当前jar中的配置文件?

在*.jar目录下创建一个config文件夹,config文件夹当中创建application.yml文件
使用 -Xbootclasspath/p 命令,是在jar包加载路径之前读取config当中的配置文件

二、使用命令

## 配置文件路径 /config/applocation.yml

## : 分隔线 多个冒号表示多个文件路径

命令:

java -Xbootclasspath/p:/config/applocation.yml:/config/applocation-dev.yml -jar *.jar

三、-Xbootclasspath/p参数解读

java -Xbootclasspath/p: 是 Java 虚拟机(JVM)的一个非标准选项,用于在启动时修改或扩展 JVM 的引导类路径(bootstrap classpath)。这个选项允许你在 JVM 启动时将指定的 JAR 文件或目录添加到默认的引导类路径之前。

作用

  • 扩展引导类路径:通过 -Xbootclasspath/p: 选项,你可以指定额外的路径(可以是 JAR 文件或目录),这些路径会被添加到 JVM 默认的引导类路径的前面。这意味着,当你使用该选项时,JVM 会优先加载你指定路径中的类和资源,然后再加载默认的引导类路径中的内容。
  • 替换核心库:这种能力有时被用来替代或扩展 JDK 自带的核心库,例如替换某些内部实现或者为研究目的修改 JDK 内部行为。

语法

java -Xbootclasspath/p:<path> [other options] <main class>

其中 <path> 可以是一个或多个用分号(;)或冒号(:)分隔的路径,具体取决于操作系统(Windows 使用分号,Unix/Linux 使用冒号)。

示例

假设你有一个自定义的 rt.jar 文件,你想让它优先于 JDK 自带的 rt.jar 被加载,你可以这样做:

java -Xbootclasspath/p:/path/to/your/custom/rt.jar -version

这样,JVM 在启动时会首先查找 /path/to/your/custom/rt.jar 中的类文件,如果找不到,则会回退到默认的引导类路径中去寻找。

注意事项

  • 不推荐频繁使用:修改引导类路径通常是为了特定的研究或开发目的,而不是日常应用开发。因为这可能会影响到 JVM 的稳定性和安全性。
  • 风险:错误地使用这个选项可能会导致不可预见的问题,比如类加载冲突、安全漏洞等。
  • 非标准选项-X 开头的选项是非标准的 JVM 选项,它们的行为可能在不同版本的 JVM 中有所不同,并且不受官方支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值