2016-07-05 11 views
0

My Spring Boot (1.3.5) 응용 프로그램은 application.properties 파일을 사용하여 외부화된 구성을 사용합니다. 함께, 나는 현재와 같은 구성 클래스가 : prop 최종 만들 수있는 방법이 있는지 궁금 해요봄 부팅 구성 완료

@Configuration 
MyConfig { 
    @Value("${prop}") 
    private String prop; 

    // getters 
} 

. 이상 적으로 공개적으로 구성 속성에 액세스하고 싶습니다. 예 : myConfig.prop. 나는 모든 재산을 만들고 싶습니다 공개최종; 그러나 구성 클래스는 먼저 속성이로드되기 전에 빈 생성자를 통해 인스턴스화됩니다. 다른 접근법이 있습니까?

+0

왜? 런타임에 귀하의 우려는 무엇입니까? – duffymo

+0

런타임 문제가 아닙니다. 오히려 그것은 config에 다른 devs에 의한 부주의 한 변경을 피하기위한 것입니다. – user1491636

답변

0

구성 값을 생성자에 삽입하고 final 필드에 지정할 수 있습니다.

@Configuration 
class MyConfig { 
    private String final prop; 
    public MyConfig(@Value("${prop}") String prop){ 
    this.prop = prop; 
    } 

} 
+0

예, 작동합니다. 구성이 많은 경우 어떻게해야합니까? 나는 그것을 더 작은 설정 클래스로 나눌 인센티브라고 생각하니? – user1491636

+0

@ user1491636 네, 그렇게 할 수 있습니다. DBConfig와 SMTPConfig가 다른 설정 클래스에 들어갈 수 있습니다. –

+0

이렇게 변경 한 후, 시작 예외가 발생합니다 : '기본 생성자가 없습니다'; – user1491636