java - 如何使用 Spring Boot 配置文件

标签 java spring spring-boot

我有 application.ymlapplication-dev.ymlapplication-dev.yml

  1. 我正在使用 maven 命令 mvn spring-boot:run -Dspring.profiles.active=dev 它不起作用,我无法使用 mvn spring 选择开发配置文件-启动:运行。我该如何选择?
  2. 文档说 java -jar XXX.jar --spring.profiles.active=dev 有效,我尝试了 -Dspring.profiles.active=dev 但它不起作用。在我的项目中,我使用 java -jar XXX.jar 它运行,但是如果我使用 java -jar XXX.jar --spring.profiles.active=dev 来选择开发配置文件,控制台打印这么多日志并警告我从未见过使用过的java -jar XXX.jar,并告诉我APPLICATION FAILED TO START

那么如何解决两个问题呢?谢谢~

最佳答案

我不确定我是否完全理解这个问题,但我会尝试通过提供有关 Spring Boot 中的配置文件的一些详细信息来回答。

对于您的 #1 示例,根据文档,您可以使用 Spring Boot Maven 插件使用 -Drun.profiles 选择配置文件。

编辑:对于 Spring Boot 2.0+,run 已重命名为 spring-boot.runrun.profiles 已重命名为 spring-boot.run.profiles

mvn spring-boot:run -Dspring-boot.run.profiles=dev

https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/maven-plugin/examples/run-profiles.html

从您的#2 示例中,您在 jar 名称之后定义 Activity 配置文件。您需要在您正在运行的 jar 名称之前提供 JVM 参数。

java -jar -Dspring.profiles.active=dev XXX.jar

一般信息:

你提到你有一个 application.yml 和一个 application-dev.yml。使用 dev 配置文件运行实际上会加载 both 配置文件。 application-dev.yml 中的值将覆盖 application.yml 提供的相同值,但两个 yml 文件中的值将被加载。

还有多种方法可以定义 Activity 配置文件。

您可以像以前一样定义它们,在运行 jar 时使用 -Dspring.profiles.active。您还可以使用 SPRING_PROFILES_ACTIVE 环境变量或 spring.profiles.active 系统属性来设置配置文件。

更多信息可以在这里找到: https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-set-active-spring-profiles

关于java - 如何使用 Spring Boot 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40060989/

相关文章:

java - 如何使用 SLA 和标签注册 Micrometer Timer?

java - 注入(inject)通用 ViewModel Dagger Hilt Android

java - Spring 启动 : get command line argument within @Bean annotated method

java - 在特定日期使用 (Spring @Scheduled) 运行作业

java - 如何定义Map,key是day,value是list

java - 我有 2 个 HTTP 服务器(apache 和 node),我想在一台机器上运行,我如何通过域名转发到适当的服务?

java - Spring REST 服务 : how to configure to remove null objects in json response

java - 如何将 PostgreSQL hstore/json 与 JdbcTemplate 一起使用

java - ReactiveCrudRepository 与 R2dbcRepository

spring-boot - 如何忽略多项目 Kotlin Spring Boot 应用程序的根项目的 gradle 构建?