【java】SpringBoot 项目指定配置环境: -Dspring.profiles.active=dev 与 --spring.profiles.active=dev 选哪个?

-Dspring.profiles.active=dev 指定的环境变量不起作用?Dspring.profiles.active=dev--spring.profiles.active=dev·选哪个?

概述

在使用 Spring Boot 构建应用程序时,你可能需要根据不同的环境(如开发环境、测试环境、生产环境等)加载不同的配置文件。Spring Boot 提供了多种设置环境变量的方式,其中比较常用的两种方式是通过系统属性 -D 和命令行参数 -- 来设置。本文将介绍这两种方式的具体使用方法和差异。

使用 -D 设置系统属性

使用 -D 参数可以在 Java 虚拟机启动时设置系统属性,从而影响应用程序的运行。在 Spring Boot 应用程序中,可以使用 -D 参数来设置 spring.profiles.active 系统属性,以指定应用程序要使用的配置文件。

例如,要在开发环境中运行应用程序,可以在命令行中使用以下命令:

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

在上述示例中,我们使用 -D 参数设置了名为 spring.profiles.active 的系统属性,将其值设置为 dev,这将指示 Spring Boot 应用程序使用名为 application-dev.propertiesapplication-dev.yml 的配置文件。

需要注意的是,使用 -D 参数设置系统属性的方式可以用于任何 Java 应用程序,并且可以设置任何系统属性,而不仅仅是 Spring Boot 应用程序的配置文件。

使用 -- 设置命令行参数

使用 -- 参数可以在命令行中设置应用程序的命令行参数,从而影响应用程序的运行。在 Spring Boot 应用程序中,可以使用 --spring.profiles.active 参数来指定应用程序要使用的配置文件。

例如,要在开发环境中运行应用程序,可以在命令行中使用以下命令:

java -jar myapp.jar --spring.profiles.active=dev

在上述示例中,我们使用 --spring.profiles.active 参数指定要使用的配置文件为 application-dev.propertiesapplication-dev.yml

需要注意的是,使用 -- 参数设置命令行参数的方式是 Spring Boot 特有的,只能用于设置 Spring Boot 应用程序的配置文件。

差异

使用 -D 参数设置系统属性和使用 -- 参数设置命令行参数之间的主要差异在于,使用 -D 参数设置系统属性可以用于任何 Java 应用程序,并且可以设置任何系统属性,而使用 -- 参数设置命令行参数的方式是 Spring Boot 特有的,只能用于设置 Spring Boot 应用程序的配置文件。

此外,使用 -D 参数设置系统属性时,需要将属性名和属性值用等号 = 连接起来,而使用 -- 参数设置命令行参数时,则需要在属性名前加上 -- 前缀。

总结

使用 -D 参数设置系统属性和使用 -- 参数设置命令行参数都是设置 Spring Boot 应用程序的配置文件的有效方法。你可以根据实际需要选择其中一种方式来设置环境变量。需要注意的是,使用 -D 参数设置的系统属性可以在程序运行时动态改变,而使用 -- 参数设置的命令行参数则不能动态改变。

推荐

在Spring-Boot 项目启动时,推荐使用 -- ,如 --spring.profiles.active=dev

猜你喜欢

转载自blog.csdn.net/m0_47406832/article/details/130891197