[SPRING] @ConfigurationProperties를 @Configuration에 autowire하는 방법은 무엇입니까?
SPRING@ConfigurationProperties를 @Configuration에 autowire하는 방법은 무엇입니까?
다음과 같이 정의 된 속성 클래스가 있습니다.
@Validated
@ConfigurationProperties(prefix = "plugin.httpclient")
public class HttpClientProperties {
...
}
그리고 다음과 같은 설정 클래스 :
@Configuration
@EnableScheduling
public class HttpClientConfiguration {
private final HttpClientProperties httpClientProperties;
@Autowired
public HttpClientConfiguration(HttpClientProperties httpClientProperties) {
this.httpClientProperties = httpClientProperties;
}
...
}
스프링 부트 응용 프로그램을 시작할 때
Parameter 0 of constructor in x.y.z.config.HttpClientConfiguration required a bean of type 'x.y.z.config.HttpClientProperties' that could not be found.
이것은 유효한 유스 케이스가 아니거나 의존성을 어떻게 선언해야 하는가?
해결법
-
==============================
1.이것은 유효한 유스 케이스이지만 HttpClientProperties는 구성 요소 스캐너에 의해 스캔되지 않기 때문에 선택되지 않습니다. HttpClientProperties에 @Component 주석을 달 수 있습니다.
이것은 유효한 유스 케이스이지만 HttpClientProperties는 구성 요소 스캐너에 의해 스캔되지 않기 때문에 선택되지 않습니다. HttpClientProperties에 @Component 주석을 달 수 있습니다.
@Validated @Component @ConfigurationProperties(prefix = "plugin.httpclient") public class HttpClientProperties { // ... }
(Stephane Nicoll이 언급 한) 또 다른 방법은 Spring 구성 클래스에서 @EnableConfigurationProperties () 주석을 사용하는 것입니다. 예를 들면 다음과 같습니다.
@EnableConfigurationProperties(HttpClientProperties.class) // This is the recommended way @EnableScheduling public class HttpClientConfiguration { // ... }
이것은 스프링 부트 문서에도 설명되어있다.
from https://stackoverflow.com/questions/43797924/how-to-autowire-configurationproperties-into-configuration by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring : @Aspect 주석으로 주석 된 클래스에 모의 삽입을 할 수 없다. (0) | 2019.05.14 |
---|---|
[SPRING] 카프카에서 여러 번 같은 메시지 읽기 (0) | 2019.05.14 |
[SPRING] JUnit 테스트 케이스는 eclipse와 함께 전달되지만 maven 빌드에서는 실패합니다. (0) | 2019.05.14 |
[SPRING] Spring의 데이터베이스 연결 관리 (0) | 2019.05.14 |
[SPRING] Spring에서 NoClassDefFoundError : ClassInterceptor 클래스가 classpath 내에 존재하지만 throw합니다. (0) | 2019.05.14 |