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

时间:2019-06-18 02:20:03

标签: spring-boot jboss jboss7.x

我有一个在jboss(而不是tomcat)中运行的spring boot应用程序。 我正在使用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文件。

3 个答案:

答案 0 :(得分:2)

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

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

示例:

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

read more

答案 1 :(得分:0)

通常,将其放置在“ src / main / resources”文件夹下时,很容易将其选中。假设您需要为profile-application-dev.properties和application-prod.properties使用不同的文件,则只需在application.properties中设置当前工作配置文件,例如

spring.profiles.active = dev

,它将很容易被选中。如果不是,您需要通过在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

答案 2 :(得分:0)

我期望spring从文件夹中选择特定于配置文件的文件,但事实并非如此。

似乎spring.config.location需要具有绝对文件位置而不是文件夹位置。因此,更新了standalone.xml中的spring.config.location,它起作用了:

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