将类路径资源注入Spring 3 bean

时间:2011-08-11 00:47:17

标签: java spring dependency-injection

我的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的最接近的解决方案是thisthis,其中详细说明了xml方式,而我有兴趣使用注释来完成此操作。

感谢关于这里可能出错的任何指示。

谢谢,

维杰

2 个答案:

答案 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;