如何在春季将文件夹的所有文件加载到资源列表中?
2022-09-01 22:04:06
我有一个文件夹,并希望使用Spring和通配符将所有txt文件加载到列表中:
通过注释,我可以执行以下操作:
@Value("classpath*:../../dir/*.txt")
private Resource[] files;
但是,如何以编程方式使用弹簧实现相同的效果呢?
我有一个文件夹,并希望使用Spring和通配符将所有txt文件加载到列表中:
通过注释,我可以执行以下操作:
@Value("classpath*:../../dir/*.txt")
private Resource[] files;
但是,如何以编程方式使用弹簧实现相同的效果呢?
使用 ResourceLoader 和 ResourcePatternUtils:
class Foobar {
private final ResourceLoader resourceLoader;
public Foobar(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
Resource[] loadResources(String pattern) throws IOException {
return ResourcePatternUtils.getResourcePatternResolver(resourceLoader).getResources(pattern);
}
}
并像这样使用它:
Resource[] resources = foobar.loadResources("classpath*:../../dir/*.txt");
如果您使用的是弹簧
@Autowired
private ApplicationContext applicationContext;
public void loadResources() {
try {
Resource[] resources = applicationContext.getResources("file:C:/XYZ/*_vru_*");
} catch (IOException ex) {
ex.printStackTrace();
}
}