通过Annotation填充Spring Bean的File字段

时间:2011-06-17 22:21:48

标签: spring file annotations

是否可以做这样的事情:

<property name="template" value="file:/some/resource/path/myTemplate.txt" />

通过注释而不创建自定义注释并通过反射填充字段?它不能用@Value完成,因为它只适用于字符串......

如果没有,那么处理Spring bean自定义注释并相应地初始化bean的最佳方法是什么?

3 个答案:

答案 0 :(得分:26)

使用资源作为字段。

@Value("file:/some/resource/path/myTemplate.txt")
Resource template;

您也可以这样使用classpath:样式URI。

然后,如果您需要获取文件,请使用template.getFile()

答案 1 :(得分:0)

如果我理解了这个问题,那么您是否尝试设置File类型的字段值?你能用@Value注入文件名,然后在需要时用代码创建File对象吗?

答案 2 :(得分:-1)

@Value( “$ {文件:/some/resource/path/myTemplate.txt}”) 资源模板;

感谢您的回复,高度赞成的答案有“templatePath”,没有任何参考,现在已经更正 - 请参阅评论。

@Value资源使用的Javadoc或官方文档很难在2011年初找到,现在仍然是,找到如何使用classpath,file,url通过@Value spel注入资源: SPEL expressionsFile system resources@Value@PropertyResource