43

一个关于从属性文件中为最终属性注入 Spring 的简单问题。

我有一个属性文件,我想在其中存储文件路径。通常,当我使用属性文件时,我使用以下内容设置类属性:

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; 

不管用。还有其他方法吗?

4

2 回答 2

41

将值注入最终字段的唯一方法是通过构造函数注入。在 Spring 方面,其他一切都将是一个可怕的 hack。

于 2011-08-20T14:07:09.533 回答
27

如果您正在寻找一个例子,这里是一个:

public class Test {
    private final String value;

    public Test(@Value("${some.value}") String value){
        this.value=value;
        System.out.println(this.value);
    }
}
于 2017-12-10T20:33:36.790 回答