如何使用spring.config.additional-location外部化配置?

时间:2018-09-20 11:03:01

标签: java spring spring-boot

我在我的application.properties中添加了以下属性,以将敏感帐户信息与主应用程序分开。

#/src/main/resources/application.properties
spring.config.additional-location=/etc/java/myapp/

spring.datasource.url=jdbc:mysql://localhost/mytable

其他:

#/etc/java/myapp/application.properties:
spring.datasource.username=theuser
spring.datasource.password=thepw

结果:找不到属性!

java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)

我在这里做什么错了?

旁注:如果添加默认值,问题仍然存在。该属性不会被覆盖!

spring.datasource.username = replaceme spring.datasource.password = replaceme

结果: java.sql.SQLException: Access denied for user 'replaceme'@'localhost' (using password: YES)

1 个答案:

答案 0 :(得分:1)

注意:从文档中,从Spring Boot 2.0 spring.config.location升级到spring.config.additional-location

命令行:java -jar名称--spring.config.additional-location = / etc / java / myapp /

spring.config.name和spring.config.location很早就用于确定必须加载哪些文件,因此必须将其定义为环境属性(通常是OS环境变量,系统属性,或命令行参数)。