BAEL-3497 IntelliJ Cannot Resolve Spring Boot Configuration Properties (#8775)

Co-authored-by: Oskar <>
This commit is contained in:
Roman 2020-03-11 19:43:43 +01:00 committed by GitHub
parent 356ef842f0
commit 8be4255cbb
6 changed files with 104 additions and 0 deletions

View File

@ -43,6 +43,12 @@
<artifactId>httpcore</artifactId>
<version>${httpcore.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${configuration-processor.version}</version>
<optional>true</optional>
</dependency>
</dependencies>
<dependencyManagement>
@ -121,6 +127,7 @@
<guava.version>20.0</guava.version>
<httpcore.version>4.4.11</httpcore.version>
<resource.delimiter>@</resource.delimiter>
<configuration-processor.version>2.2.4.RELEASE</configuration-processor.version>
</properties>
</project>

View File

@ -0,0 +1,37 @@
package com.baeldung.configuration.processor;
import org.springframework.boot.context.properties.*;
import org.springframework.context.annotation.*;
@Configuration
@ConfigurationProperties(prefix = "com.baeldung")
public class CustomProperties {
/**
* The url to connect to.
*/
String url;
/**
* The time to wait for the connection.
*/
private int timeoutInMilliSeconds = 1000;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getTimeoutInMilliSeconds() {
return timeoutInMilliSeconds;
}
public void setTimeoutInMilliSeconds(int timeoutInMilliSeconds) {
this.timeoutInMilliSeconds = timeoutInMilliSeconds;
}
}

View File

@ -0,0 +1,12 @@
package com.baeldung.configuration.processor;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

View File

@ -0,0 +1,22 @@
package com.baeldung.configuration.processor;
import org.springframework.beans.factory.annotation.*;
import org.springframework.stereotype.*;
@Component
public class PropertyBeanInjection {
private final CustomProperties customProperties;
PropertyBeanInjection(@Autowired CustomProperties customProperties) {
this.customProperties = customProperties;
}
String getUrl() {
return customProperties.getUrl();
}
int getTimeoutInMilliseconds() {
return customProperties.getTimeoutInMilliSeconds();
}
}

View File

@ -0,0 +1,24 @@
package com.baeldung.configuration.processor;
import org.junit.jupiter.api.*;
import org.junit.runner.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.boot.test.context.*;
import org.springframework.test.context.*;
import org.springframework.test.context.junit4.*;
@RunWith(SpringRunner.class)
@TestPropertySource("/configuration-processor.properties")
@SpringBootTest(classes = DemoApplication.class)
class PropertyBeanInjectionUnitTest {
@Autowired
private PropertyBeanInjection propertyBeanInjection;
@Test
void checkThatCustomPropertiesHaveTheCorrectValueFromPropertiesFile() {
Assertions.assertEquals("www.abc.test.com", propertyBeanInjection.getUrl());
Assertions.assertEquals(2000, propertyBeanInjection.getTimeoutInMilliseconds());
}
}

View File

@ -0,0 +1,2 @@
com.baeldung.url=www.abc.test.com
com.baeldung.timeout-in-milli-seconds=2000