通过注释填充 Spring Bean 的文件字段
是否可以做这样的事情:
<property name="template" value="file:/some/resource/path/myTemplate.txt" />
通过注释而不创建自定义注释并通过反射填充字段?它不能用 @Value 来完成,因为它只适用于字符串...
如果不是,处理 Spring bean 自定义注释并相应地初始化 bean 的最佳方法是什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用资源作为字段。
您也可以通过这种方式使用
classpath:
样式 URI。然后如果您需要获取文件,请使用
template.getFile()
Use a Resource as the field.
You can use
classpath:
style URIs this way too.Then if you need to get a File, use
template.getFile()
如果我理解这个问题,您正在尝试设置文件类型字段的值?您可以只用 @Value 注入文件名,然后在需要时在代码中创建 File 对象吗?
If I understand the question, you are trying to set the value of a field which is of type File? Could you just inject the file name with the @Value and then create the File object in code when needed?
@Value("${文件:/some/resource/path/myTemplate.txt}")
资源模板;
感谢您的唤醒,高度评价的答案有“templatePath”,没有任何引用,现在已更正 - 请参阅评论。
@Value 资源使用的 Javadoc 或官方文档在 2011 年初很难找到,现在仍然很难找到如何使用类路径、文件、url 通过 @Value 拼写注入资源:
SPEL 表达式,文件系统资源,@Value,@PropertyResource
@Value("${file:/some/resource/path/myTemplate.txt}")
Resource template;
Thanks for the wake up, the highly upvoted answer had "templatePath" without any references and now stands corrected - see comments.
The Javadoc or official docs for @Value resource usages was hard to find early 2011 and still is, to find how resources can be injected via @Value spel using classpath, file, url:
SPEL expressions, File system resources, @Value, @PropertyResource