我正在尝试从模块中的应用程序属性中读取第二个数据库连接信息。我的配置模块应该读取值。
配置
@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>
谢谢。
发布于 2018-10-31 17:56:46
您在spring-boot中混合了两种读取配置数据的方法。
当您具有必须在@组件中访问的单个属性时,应使用@Value。基本上,它是一种类似于
Ex: max.threads=10
Which can be accessed in a component using @Value.配置属性的方式是当您有多个值并按功能分组时。
Ex: server.names:
-
server1
-
server2现在,您应该使用配置属性。
不要将两者混为一谈。您不应该在配置属性java文件中使用@Value。
发布于 2018-10-31 16:57:03
@Value("${url}"),这种书写方式对应于'application.propertice‘或'application.yml’文件。下面的正确书写方式。

https://stackoverflow.com/questions/53079440
复制相似问题