我的Spring 3 bean中有一个Resource类型的属性,应该在类路径中引用一个文件。我使用如下的@Value注释来希望实现这一点。
public class TestBean
{
@Value("classpath:/abc/student/test.sql")
private Resource SqlFile;
...
}
但该属性始终为null。我已经确认sql文件已部署在maven目标目录中(它位于target / classes / abc / student / test.sql)。
我可以google的最接近的解决方案是this和this,其中详细说明了xml方式,而我有兴趣使用注释来完成此操作。
感谢关于这里可能出错的任何指示。
谢谢,
维杰
答案 0 :(得分:42)
如果它会像那样硬编码,那么只需
private Resource sqlFile = new ClassPathResource("/abc/student/test.sql");
否则,你真正追求的是
@Value("${some.property}")
private Resource sqlFile;
我相信在注入属性值时,将应用正确的PropertyEditor。
答案 1 :(得分:0)
如果您不想指定属性,则应该可以使用
@Value("${:classpath:json/inventory.json}")
Resource inventory;