Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';Spring上-Drun.profiles和-Dspring.profiles.active的区别是什么?_Java_Spring_Maven_Spring Boot_Profile - Fatal编程技术网

Java 什么';Spring上-Drun.profiles和-Dspring.profiles.active的区别是什么?

Java 什么';Spring上-Drun.profiles和-Dspring.profiles.active的区别是什么?,java,spring,maven,spring-boot,profile,Java,Spring,Maven,Spring Boot,Profile,我试图理解Spring中-Drun.profiles和-Dspring.profiles.active之间的区别 另一个则没有对这种差异做出太多解释 在我的测试中,它们都可用于选择配置文件: mvn spring-boot:run -Drun.profiles=prod 或 那么,有什么区别呢?spring.profiles.active是spring引导应用程序支持的现成属性之一。它用于在Spring引导应用程序级别指定应该运行哪些配置文件 Spring Boot支持许多不同的属性,可以找到

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

另一个则没有对这种差异做出太多解释

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

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


那么,有什么区别呢?

spring.profiles.active是spring引导应用程序支持的现成属性之一。它用于在Spring引导应用程序级别指定应该运行哪些配置文件

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

现在,您在这些属性中找不到
run.profiles
,因为它只是SpringBootMaven插件支持的一个属性(是的,它将其“转换”为要使用的配置文件列表,因此这些属性可能看起来类似),但关键是,只有使用Maven插件启动spring启动应用程序,才能使用
-Drun.profiles

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

最后一点,即使在Maven
--spring.profiles.active
中也可以使用,但它不能开箱即用。应按如下方式传递此参数:

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


希望这能澄清两者之间的区别。

-Dspring.profile.active是指-Dspring.profiles.active?是的,我错了。另外,在使用spring boot maven插件的
-Drun.profiles=prod
时,它是指定
spring.profiles.active
参数的便捷快捷方式。
mvn spring-boot:run -Drun.jvmArguments="-Dspring.profiles.active=production"