스프링 부트의 @ConfigurationProperties
주석으로 불변 (최종) 필드를 가질 수 있습니까? 예변경 불가능한 @ConfigurationProperties
@ConfigurationProperties(prefix = "example")
public final class MyProps {
private final String neededProperty;
public MyProps(String neededProperty) {
this.neededProperty = neededProperty;
}
public String getNeededProperty() { .. }
}
접근 아래 지금까지 시도했다 : 빈과 neededProperty
인수
- 이
- 두 개의 생성자를 제공하는 두 개의 생성자 으로
MyProps
클래스의@Bean
만들기 콩이 만들어집니다new MyProps()
- 필드에있는 결과
MyProps
빈을 제공하기 위해@ComponentScan
및@Component
를 사용null
- 두 개의 생성자를 제공하는 두 개의 생성자 으로
- . 각 final이 아닌 필드 게터/세터를 제공함으로써>
NoSuchMethodException: MyProps.<init>()
만 나는 그것을 작업 가지고 방법입니다 - BeanInstantiationException
에서
- 결과.
을 도움이되기를 바랍니다
을 줄일 수 하려고하면 상자 밖으로 작동하지 않습니다. – geoand
슬픈 일입니다.물론, 나는 @Value 주석으로 생성자 매개 변수를 사용하여 평범한 Spring으로 언제나 그것을 할 수있다. 그러나 스프링 부트가 이것을 지원한다면 좋을 것입니다. – RJo
나는 소스 코드에서 작은 부분을 차지했지만, 당신이 묻고있는 것과 같은 것을 지원하는 것은 쉽지 않다. 당연히 나는 스프링 내부에 대한 전문가가 아니기 때문에 무언가를 놓치고있는 것일 수도 있습니다. – geoand