【发布时间】:2017-08-18 01:04:19
【问题描述】:
spring:
profiles: dev
spring.datasource:
driver-class-name:
password: ~
url: ~
username: ~
---
secdb:
profiles: dev
spring.datasource:
driver-class-name: ~
password: ~
url: ~
username: ~
---
我在 application.yml 文件中声明了以上两个属性,但是当我在实现类中使用它时,如下所示。
@Value("${spring.datasource.url}")
private String URL;
它可以工作并从 YML 文件中获取 url。 但是当我这样做时
@Value("${secdb.spring.datasource.url}")
private String URL;
它在春季启动时失败,开始说
Could not resolve placeholder 'secdb.spring.datasource.url' in value...
因为,我处于初级水平。 YML 可能是错误的,但我的意图是在 YML 文件中有两个数据源,并将第二个用于一个 JDBC 连接,另一个是默认的。请指导我解决错误
【问题讨论】:
-
@Value("$(spring.datasource.url")无效。应该是@Value("${spring.datasource.url}")。此外,YAML 文件缩进严重。你还记得激活个人资料dev吗? -
@Andreas 请更新我的问题,检查。 YML 可能是错误的,但我的意图是在 YML 文件中有两个数据源,并将第二个用于一个 JDBC 连接,另一个是默认的
-
您问题中的 YAML 无效(第一个
spring.datasource:不能缩进该空间量)。这真的是 spring-boot 接受的还是您提供的信息不正确? -
“YML 可能是错误的” 如果 YAML 错误,则属性名称将不是您想要的,您的整个问题都是关于未定义的属性。所以,在做任何事情之前,修复 YAML。
-
现在正确缩进了 YAML 文件。
标签: java spring spring-boot configuration yaml