为什么应用程序-<profile>,设置配置文件时未加载属性?

0s7z1bwu  于 2022-09-19  发布在  Spring
关注(0)|答案(3)|浏览(162)

我在类路径的根中有application-dev.propertiesapplication-local.properties。属性文件中是我的数据源属性。但即使我们启动应用程序时
java -Dspring.profiles.active=local -jar myJarApp.jar
谢谢

u5rb5r59

u5rb5r591#

尝试传递参数,如下所示:

$ java -jar xyz.jar --spring.profiles.active="dev"

而不是使用-D标志。
或者,您可以在控制台/提示符中设置以下环境变量,然后在不传递任何参数的情况下运行java -jar xyz.jar

export SPRING_PROFILES_ACTIVE=dev

这应该行得通。
参考:
http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

qmb5sa22

qmb5sa222#

注意配置文件名称中的连字符。
在我的例子中,Spring Boot 2.3.2将在运行时选择配置文件local-docker
java -jar -Dspring.profiles.active=docker target/main-0.0.1-SNAPSHOT.jar
但由于某些原因,它不会选择相关联的属性文件application-local-docker.properties。我恢复了使用不带连字符的配置文件名,这很有效。

p4rjhz4m

p4rjhz4m3#

如果您想直接从maven运行它

./mvnw spring-boot:run \
  -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=PROFILE_NAME"

例子:

./mvnw spring-boot:run \
  -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"

相关问题