【发布时间】:2019-04-04 09:19:12
【问题描述】:
我正在尝试从我的模块中的应用程序属性中读取第二个数据库连接信息。我的配置模块应该读取值。
配置
@Configuration
@PropertySource(value={"classpath:application.properties"})
@ConfigurationProperties(prefix = "spring.second-datasource")
public class DatabaseConfiguration {
@Value("${url}")
private String url;
@Value("${username}")
private String user;
@Value("${password}")
private String password;
public String getUrl() {
return url;
}
public String getUser() {
return user;
}
public String getPassword() {
return password;
}
}
当我在控制器内部调用 DatabaseConfiguration 时,它会报错。
private DatabaseConfiguration databaseConfiguration;
databaseConfiguration.getUrl();
.
.
.
错误
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'url' in value "${url}"
我找到了一些解决方案,例如这个
Spring boot could not resolve placeholder in string
我实现了。
POM.XML
http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0
<artifactId>//artifactID</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>fraud-core</name>
<description>Demo project for Spring Boot</description>
<parent>
//Parent
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<HMN_CDM_Facade.version>TEST-SNAPSHOT</HMN_CDM_Facade.version>
<hmn.dependency.scope>compile</hmn.dependency.scope>
</properties>
<dependencies>
//DEPENDENCIES
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
谢谢。
【问题讨论】:
-
请添加您的 application.properties 文件
-
删除
@Value注释以及@PropertySource。 -
而不是 ${url} 使用 ${spring.datasource.url}
-
看看这个答案。虽然是关于 Spring Batch,但它展示了如何使用辅助数据源:stackoverflow.com/a/48982583/3046834
标签: java spring-boot