フォルダがあり、Springとワイルドカードを使用してすべてのtxtファイルをリストにロードしたい:
注釈により、私は次のことができます:
@Value("classpath*:../../dir/*.txt")
private Resource[] files;
しかし、プログラムで春を使用して同じことをどのように達成できますか?
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");
Springを使用している場合
@Autowired
private ApplicationContext applicationContext;
public void loadResources() {
try {
Resource[] resources = applicationContext.getResources("file:C:/XYZ/*_vru_*");
} catch (IOException ex) {
ex.printStackTrace();
}
}