将类路径资源注入 Spring 3 Bean 中

2022-09-01 08:48:50

在我的 Spring 3 Bean 中有一个 Resource 类型的属性,应该通过对类路径中文件的引用来注入该属性。我使用如下所示的@Value注释来希望实现这一目标。

public class TestBean
{
    @Value("classpath:/abc/student/test.sql")
    private Resource SqlFile;
    ...
}

但该属性始终为空。我已经确认sql文件已部署在maven目标目录中(它位于target/classes/abc/student/test.sql)。

我可以谷歌的最接近的解决方案是这个这个,它详细介绍了xml的方式,而我有兴趣使用注释来做到这一点。

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

谢谢

维杰


答案 1

如果它要像那样硬编码,那么只需

private Resource sqlFile = new ClassPathResource("/abc/student/test.sql");

否则,你真正想要的是

@Value("${some.property}")
private Resource sqlFile;

我相信在注入属性值时,将应用正确的属性编辑器。


答案 2

如果您不想指定属性,那么这应该有效

@Value("${:classpath:json/inventory.json}")
Resource inventory;

推荐