如何在Spring中将文件夹的所有文件加载到资源列表中?

2022-02-28 00:00:00 spring java spring-batch

我有一个文件夹,希望使用Spring和通配符将所有txt文件加载到列表中:

通过注释,我可以执行以下操作:

@Value("classpath*:../../dir/*.txt")
private Resource[] files;

但是我如何使用Spring以编程方式实现相同的功能?


解决方案

使用ResourceLoader和ResourcePatternUtils:

class Foobar {
    private ResourceLoader resourceLoader;

    @Autowired
    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");

相关文章