I am trying to read second database connection information from application properties in my module. My configuration module should read values.
Configuration
@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;
}
}
When I call DatabaseConfiguration inside of the controller, it gives an error.
private DatabaseConfiguration databaseConfiguration;
databaseConfiguration.getUrl();
.
.
.
Error
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'url' in value "${url}"
I found some solutions such as this one
Spring boot could not resolve placeholder in string
I implemented it.
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>
Thanks.