Spring Boot 2:使用外部属性文件

时间:2018-02-21 16:13:46

标签: spring-boot properties external executable-jar

我有一个可执行的jar,我希望通过jar之外的属性来配置它。什么工作正常是application.properties,当它放在靠近jar的config文件夹时。但我有第二个属性文件似乎没有被提取,我想有最佳实践。

文件夹config如下所示: enter image description here

在config-folder中你会发现: enter image description here

两个属性文件也位于src/main/resources文件夹中。

我的StartClass看起来像:

@SpringBootApplication
@PropertySource("migration-shrink.properties")
public class MigrationShrinkApplication implements CommandLineRunner {}

我的bat文件如下:

java -jar migration-shrink-0.0.1-SNAPSHOT.jar -Dspring.config.location=./config/migration-shrink.properties

我想将Spring-Configuration与Application-Configuration分开,这就是为什么我有两个不同的属性文件。

谢谢!

1 个答案:

答案 0 :(得分:1)

@PropertySource注释不是必需的。

从Spring Boot 2.0开始,您可以使用以下命令声明其他位置:

-Dspring.config.additional-location=./config/migration-shrink.properties

请注意,在其他位置之前会搜索这些其他位置,因此可以在其他位置覆盖这些值。

请参阅the Spring Boot reference documentation