programing

최종 특성의 스프링 특성 주입 @Value - Java

bestprogram 2023. 8. 15. 11:18

최종 특성의 스프링 특성 주입 @Value - Java

최종 특성에 대한 특성 파일의 스프링 주입에 대한 간단한 질문입니다.

파일 경로를 저장할 속성 파일이 있습니다.일반적으로 속성 파일을 사용할 때는 다음과 같은 방법을 사용하여 클래스 속성을 설정합니다.

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; 

작동하지 않습니다.다른 방법이 없나요?

최종 필드에 값을 주입할 수 있는 유일한 방법은 생성자 주입입니다.다른 모든 것들은 스프링 쪽에서 끔찍한 해킹이 될 것입니다.

예를 찾는다면 다음과 같습니다.

public class Test {
    private final String value;

    public Test(@Value("${some.value}") String value){
        this.value=value;
        System.out.println(this.value);
    }
}

언급URL : https://stackoverflow.com/questions/7130425/spring-property-injection-in-a-final-attribute-value-java