tangguo

最终属性@Value中的Spring属性注入-Java

java

关于从属性文件中为最终属性进行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; 

不管用。还有另一种方法吗?


阅读 363

收藏
2020-10-17

共2个答案

小编典典

将值注入最终字段的唯一方法是通过构造函数注入 。其他一切对Spring来说都是骇人听闻的事情。

2020-10-17
小编典典

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

public class Test {
    private final String value;

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