SpringBoot:单独的属性文件

时间:2018-06-19 09:54:25

标签: spring spring-boot

我已经创建了application.properties文件:

spring.config.additional-location=C:\Users\user\
spring.datasource.url=jdbc:postgresql://<db>:<port>/<db>

我需要向Spring添加一个位于C:\Users\user\application.properties上的附加文件:

spring.datasource.username=user
spring.datasource.password=password

正如您所看到的,我已尝试将spring.config.additional-location属性用于我的application.properties文件。

但是,bootstrap告诉我没有提供身份验证。

3 个答案:

答案 0 :(得分:0)

文档说使用文件:C:/ Users / user / &#34;文件:&#34;或&#34; classpath:&#34;部分很重要。

还有很多其他方法可以做到这一点。 - 个人资料(以及每个个人资料application-<profile>.properties) - @Configuration + @PropertySource - ......

答案 1 :(得分:0)

您可以通过指定spring.config.name环境属性来使用其他文件名。您还可以使用spring.config.location环境属性(以逗号分隔的目录位置或文件路径列表)来引用显式位置。以下示例显示如何指定其他文件名:

$ java -jar myproject.jar --spring.config.name=myproject

参考网址:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

答案 2 :(得分:0)

您可以使用@PropertySources指定替代属性,如下所示:

@PropertySources({
    @PropertySource({"classpath:application.properties"}),
    @PropertySource(value = {"file:${conf-dir}}/application-override.properties" },ignoreResourceNotFound = true)
})
public class AppConfig {
...

如果文件存在,底部PropertySource中的属性将覆盖第一个属性。