23

최종 속성에 대한 속성 파일에서 Spring 삽입에 관한 간단한 질문.최종 속성에서 Spring 속성 삽입 @Value - Java

은 내가에서 파일 경로를 저장하려는 속성 파일이 나는 특성 파일을 사용할 때 일반적으로 I 설치 클래스는 같은 것을 사용하여 속성 :.

에서 다음
private @Value("#{someProps['prop.field']}") String someAttrib ; 

spring.xml 내가 좋아하는 뭔가를 할 것이다 :

<util:properties id="someProps" 
    location="classpath:/META-INF/properties/somePropFile.properties" /> 

이것은 잘 작동하며 간단하며 코드를 멋지게 만듭니다. 하지만 최종 클래스 속성에 속성 값을 주입 할 때 가장 깨끗한 패턴이 무엇인지 잘 모르겠습니다. 같은

분명히

뭔가 :

private static final @Value("#{fileProps['dict.english']}") String DICT_PATH; 

이 작동하지 않습니다. 다른 방법이 있습니까?

건배!

+2

아니, 두 가지 방법이 호환되지 않습니다. – skaffman

답변

24

최종 필드에 값을 주입 할 수있는 유일한 방법은 Constructor Injection입니다. 다른 모든 것들이 Spring 측의 끔찍한 해킹이 될 것입니다.

+1

예가 있습니까? – wheeler

0

당신이하신 경우 :

public class Test { 


    private final String value; 
    public Test(@Value("${some.value}") String value){ 
     this.value=value; 
     System.out.println(authURL); 
    } 
    } 
관련 문제