最终属性 @Value 中的 Spring 属性注入 - 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;
行不通。还有别的办法吗?
A simple question on Spring injection from a properties file for a final attribute.
I have a properties file which I want to store a file path in. Generally when I use properties files I setup class attributes using something like this:
private @Value("#{someProps['prop.field']}") String someAttrib ;
Then in my spring.xml
I would have something like:
<util:properties id="someProps"
location="classpath:/META-INF/properties/somePropFile.properties" />
This works well, is simple and makes code nice and neat. But I'm not sure what is the neatest pattern to use when trying to inject properties values into final class attributes?
Obviously something like:
private static final @Value("#{fileProps['dict.english']}") String DICT_PATH;
will not work. Is there another way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将值注入最终字段的唯一方法是通过 构造函数注入。对于 Spring 来说,其他一切都将是一个可怕的黑客攻击。
The only way you can inject values into a final field is through Constructor Injection. Everything else would be an awful hack on Spring's side.
如果您正在寻找示例,这里是一个:
If you are looking for an example here is one: