我有一个在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文件。
答案 0 :(得分:2)
最初启动应用程序时,可以使用以下命令提供外部化的配置文件,
java -jar <your-jar-name.jar> --spring.config.location=<path><external property>
示例:
java -jar mySample.jar --spring.config.location=./application-external.properties
答案 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" />