如何在 war(jboss) 之外设置特定配置文件 applicaiton.properties(spring boot)?

how to set profile-specific applicaiton.properties(spring boot) outside war(jboss)?

我在 jboss(而不是 tomcat)中有 spring 个引导应用程序,我是 运行。 我正在使用 spring 配置文件来加载特定环境 application.properties。

配置文件特定应用程序{env}.properties 放在 "src/main/resources/" 下时工作正常,但是放在外部时它不起作用。

我尝试在 jboss standalone.xml 中设置 属性 但应用程序无法在 jboss 中启动。

<property name="spring.config.location" value="C:/Dev/config/rt" />

请建议如何加载未放置在 war 文件中的环境特定 application.properties 文件。

您可以在最初启动应用程序时使用以下命令提供外部化配置文件,

java -jar <your-jar-name.jar> --spring.config.location=<path><external property>

示例:

java -jar mySample.jar --spring.config.location=./application-external.properties

read more

一般放在'src/main/resources'文件夹下很容易被选中。假设您必须为配置文件设置不同的文件,例如 - application-dev.properties 和 application-prod.properties,您只需要在 application.properties 中设置当前工作配置文件,例如

spring.profiles.active=开发

而且很容易被采摘。如果不是,您需要通过在 jboss 的 bin 文件夹中创建新的 bat 或 sh 文件(如 run.bat 和 run.sh 并传递文件位置(如

--spring.config.location=

要添加到 bat/sh 文件中的完整命令将是

 java -jar appName.jar --spring.config.name=application-dev --spring.config.location=c:/Dev/application-dev.properties

我原以为 spring 会从文件夹中选择配置文件特定文件,但看起来并非如此。

看来 spring.config.location 需要绝对文件位置而不是文件夹位置。因此,在 standalone.xml 中更新了 spring.config.location 并且有效:

<property name="spring.config.location" value="C:/Dev/config/rt/application-dev.properties" />