Spring Boot项目如何使用外部application.yml配置文件启动JAR包

 更新时间:2025年08月09日 14:09:02   作者:一头小阿牛  
文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括设置spring.config.location参数、打包注意事项及路径格式要求,强调外部配置优先级和覆盖机制,提供Linux/Windows启动示例,需要的朋友跟随小编一起学习吧

Spring Boot项目中使用外部application.yml配置文件启动JAR包

一、基本原理

Spring Boot默认会加载项目内部的application.ymlapplication.properties文件。但如果我们希望使用外部配置文件,可以通过设置spring.config.location属性来指定外部配置文件的路径。这种方式允许配置文件独立于JAR包存在,便于修改和部署。

二、具体操作步骤

1. 准备外部配置文件

application.yml文件放置在项目外部,例如放在以下路径:

  • /opt/config/application.yml
  • D:\config\application.yml
    确保该文件包含你需要的配置内容,例如:
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test_db
    username: root
    password: secret
server:
  port: 8080

2. 打包项目为JAR文件

在项目根目录下,使用Maven或Gradle打包项目,确保JAR包内不包含application.yml文件。例如,使用Maven:

mvn clean package -DskipTests

3. 启动JAR包并指定外部配置文件

使用以下命令启动JAR包,并指定外部配置文件的路径:

java -jar your-app.jar --spring.config.location=file:/opt/config/application.yml

或者,如果配置文件位于Windows系统的某个路径:

java -jar your-app.jar --spring.config.location=file:D:\config\application.yml

4. 验证配置是否生效

启动后,可以通过日志或应用程序中的配置项检查外部配置文件是否被正确加载。例如,检查数据库连接是否使用了外部配置文件中的URL和用户名。

三、注意事项

  1. 优先级问题
    • 使用--spring.config.location指定外部配置文件后,Spring Boot将不再加载JAR包内部的默认配置文件。
    • 如果需要同时加载JAR包内部的默认配置文件和外部配置文件,可以使用--spring.config.additional-location参数:
      java -jar your-app.jar --spring.config.additional-location=file:/opt/config/application.yml
  2. 路径格式
    • 确保路径格式正确,例如在Linux系统下使用正斜杠(/),在Windows系统下使用反斜杠(\)或正斜杠(/)。
    • 如果路径中包含空格,需要用引号包裹:
      java -jar your-app.jar --spring.config.location="file:/opt/my config/application.yml"
  3. 权限问题
    • 确保启动JAR包的用户对配置文件路径有读取权限,否则可能导致配置文件无法加载。
  4. 配置冲突
    • 如果外部配置文件和JAR包内部的配置文件存在相同的配置项,外部配置文件的配置会覆盖内部的配置。
  5. 测试配置
    • 建议在正式使用前,先手动测试启动命令,确保配置文件被正确加载且应用程序按预期运行。

四、示例

假设你有一个Spring Boot项目,打包后生成的JAR文件名为myapp.jar,并希望使用外部配置文件/opt/config/application.yml启动。启动命令如下:

java -jar myapp.jar --spring.config.location=file:/opt/config/application.yml

如果外部配置文件位于Windows系统的D:\config\application.yml,则命令为:

java -jar myapp.jar --spring.config.location=file:D:\config\application.yml

到此这篇关于Spring Boot项目中使用外部application.yml配置文件启动JAR包的文章就介绍到这了,更多相关springboot application.yml配置文件启动jar包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java泛型的继承和实现操作示例

    Java泛型的继承和实现操作示例

    这篇文章主要介绍了Java泛型的继承和实现操作,结合实例形式分析了java泛型类的继承以及泛型接口的实现相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • 利用MyBatis进行不同条件的like模糊查询的方法

    利用MyBatis进行不同条件的like模糊查询的方法

    这篇文章主要介绍了利用MyBatis进行不同条件的like模糊查询,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • java实现哈弗曼编码与反编码实例分享(哈弗曼算法)

    java实现哈弗曼编码与反编码实例分享(哈弗曼算法)

    本文介绍java实现哈弗曼编码与反编码实例,大家参考使用吧
    2014-01-01
  • Spring Security放行的接口Knife4j静态资源的问题小结

    Spring Security放行的接口Knife4j静态资源的问题小结

    这篇文章主要介绍了Spring Security使用Knife4j静态资源的问题小结,项目中使用 Spring Security 做身份认证和授权,使用 Knife4j 做接口调试,需要 Spring Security 放行的接口记录在 RequestMatcherConstant 类中,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • 在Spring Boot中从类路径加载文件的示例

    在Spring Boot中从类路径加载文件的示例

    创建Spring Boot Web应用程序时,有时有时需要从类路径中加载文件;war和jar的加载文件格式是不一样的,在下面,您将找到在WAR和JAR中加载文件的解决方案。
    2020-10-10
  • Java数据结构顺序表用法详解

    Java数据结构顺序表用法详解

    顺序表是计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系
    2021-10-10
  • Java Scanner 类最佳实践

    Java Scanner 类最佳实践

    本文将深入解析Scanner类的核心功能、使用场景及最佳实践,帮助开发者高效处理控制台输入、文件读取等场景,感兴趣的朋友一起看看吧
    2025-07-07
  • 最全总结SpringBean的作用域管理

    最全总结SpringBean的作用域管理

    今天给大家详细总结了SpringBean的作用域管理,文中有非常详细的图文介绍以及代码示例,对正在学习java的小伙伴们还很有帮助,需要的朋友可以参考下
    2021-05-05
  • Java如何实现一个简化版的Stream框架

    Java如何实现一个简化版的Stream框架

    这篇文章主要为大家详细介绍了一个简化版的 Stream 实现,展示了如何通过延迟执行来处理数据流,感兴趣的小伙伴可以跟随小编一学习一下
    2024-10-10
  • Dubbo retries 超时重试机制的问题原因分析及解决方案

    Dubbo retries 超时重试机制的问题原因分析及解决方案

    这篇文章主要介绍了Dubbo retries 超时重试机制的问题,解决方案是通过修改dubbo服务提供方,将timeout超时设为20000ms或者设置retries=“0”,禁用超时重试机制,感兴趣的朋友跟随小编一起看看吧
    2022-04-04

最新评论