gpt4 book ai didi

java - Spring上的-Drun.profiles和-Dspring.profiles.active有什么区别?

转载 作者:行者123 更新时间:2023-11-30 06:46:11 27 4
gpt4 key购买 nike

我试图了解 Spring 中 -Drun.profiles-Dspring.profiles.active 之间的区别。

另一个answer in SO并没有过多解释其中的差异。

在我的测试中,它们都可以用来选择配置文件:

mvn spring-boot:run -Drun.profiles=prod

mvn spring-boot:run -Dspring.profiles.active=prod

那么,有什么区别呢?

最佳答案

spring.profiles.active 是 Spring Boot 应用程序开箱即用支持的属性之一。它用于在 Spring Boot 应用程序级别指定应运行哪些配置文件。

Spring Boot 支持许多不同的属性,完整列表可以在here 找到。 .

现在,您在这些属性中找不到 run.profiles ,因为它只是 Spring Boot Maven 插件支持的一个属性(是的,它将其“转换”为配置文件列表)也可以使用,因此这些属性可能看起来很相似),但重点是 -Drun.profiles 仅当您使用 Maven 插件启动 Spring Boot 应用程序时才起作用。

然而,在生产中,很可能根本不会有 Maven,应用程序将按原样(作为一个大 jar)运行,甚至打包为 Docker 镜像或其他东西。因此,对于非 maven-plugin 使用,您应该使用 spring.profiles.active

最后一点,即使在 Maven 中 --spring.profiles.active 可以使用,但它不能开箱即用。您应该像这样传递此参数:

mvn spring-boot:run -Drun.jvmArguments="-Dspring.profiles.active=production"

参见this item in Github .

希望这能澄清两者之间的差异。

关于java - Spring上的-Drun.profiles和-Dspring.profiles.active有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47934494/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com