使用 java -jar 命令启动 Spring Boot 应用时,指定特定的配置文件的几种实现方式

在使用 java -jar 命令启动 Spring Boot 应用时,如果你想要指定特定的配置文件,可以通过以下几种方式来实现:

  1. 使用 --spring.config.location 指定配置文件路径

    你可以使用 --spring.config.location 参数来指定一个或多个配置文件的路径。例如:

    java -jar web-0.0.1.jar --spring.config.location=classpath:/application-local.yml

这样,Spring Boot 会从 application-local.yml 文件加载配置,注意这个路径是基于类路径的,如果文件在本地硬盘上的绝对路径或相对路径下,可以指定完整路径:

复制代码
java -jar web-0.0.1.jar --spring.config.location=file:/path/to/your/application-local.yml
  1. 使用 --spring.config.name 指定配置文件名

    如果你想使用特定的配置文件名,而不必指定完整路径,可以使用 --spring.config.name 参数。例如,如果你有 application-local.yml 文件,并且希望 Spring Boot 加载它:

    java -jar web-0.0.1.jar --spring.config.name=application-local

这种方式会告诉 Spring Boot 查找 application-local.yml 或 application-local.properties 文件。

  1. 同时使用 --spring.config.location 和 --spring.config.name

    如果你想指定配置文件的路径以及文件名,可以结合这两个参数:

    java -jar web-0.0.1.jar --spring.config.location=file:/path/to/your/config/ --spring.config.name=application-local

  2. 使用 -D 传递 spring.config.location 或 spring.config.name 参数

    除了使用 -- 语法外,也可以通过 -D 参数指定配置文件路径:

    java -Dspring.config.location=file:/path/to/your/config/application-local.yml -jar web-0.0.1.jar

  3. 使用 -Dspring.profiles.active 激活指定的 profile

    如果你只想激活特定的 Spring profile(例如 local),而没有更改配置文件的位置,可以使用 -Dspring.profiles.active 来指定激活的 profile。例如:

    java -Dspring.profiles.active=local -jar web-0.0.1.jar

注意:顺序不能错,不能写成 java -jar web-0.0.1.jar -Dspring.profiles.active=local , 否则配置将不会生效

这种方式会根据配置文件的命名约定(如 application-local.yml 或 application-local.properties)自动加载相关配置。

  1. 多个配置文件

    如果你需要加载多个配置文件,可以通过逗号分隔路径:

    java -jar web-0.0.1.jar --spring.config.location=file:/path/to/first-config.yml,file:/path/to/second-config.yml

总结:

1.指定路径和文件名:使用 --spring.config.location 或 -Dspring.config.location 指定完整路径。

2.仅指定文件名:使用 --spring.config.name 或 -Dspring.config.name 指定文件名。

3.激活 Profile:使用 -Dspring.profiles.active=profile-name 激活特定的 Spring Profile。

这些方法可以帮助你灵活地在命令行中指定不同的 Spring Boot 配置文件。

相关推荐
秋饼3 分钟前
Spring AI 2.0 结构化输出企业级实战:从 BeanOutputConverter 源码到生产级解析容错
java·ai·技术分享·后端开发
摇滚侠3 分钟前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
Cc.Y10 分钟前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python
拿本唠嗑AI研究17 分钟前
本体工程实战指南:从建模到可维护的完整落地路径
java·人工智能·python·jena·ontology
lambo mercy1 小时前
Day3:结构化输出
java·数据库·oracle
程序员清风1 小时前
最短路径算法:BFS、Dijkstra 与 Floyd
java·算法·宽度优先
凤山老林1 小时前
Spring Boot 集成 Sa-Token 实现高可用权限认证:登录鉴权、动态路由权限与接口防重放实战
spring boot·后端·sa-token·bootstrap
智能直播2 小时前
RK3528 V4L2 框架 UVC 接口自动获取 H.264 / MJPEG / YUYV 格式:从内核采集到硬解分发
java·网络·实时音视频·视频编解码·h.264
171320330计算机毕设编程2 小时前
计算机毕业设计 基于YOLO改进算法的车辆特征识别系统设计与实现--lw
java·大数据·python·sql·算法
badhope2 小时前
Spring AI Alibaba停更:Java程序员的信任,还能被辜负几次?
java·spring