Micronaut 列表资源文件
Micronaut list resources 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");
我如何在 Micronaut 中做到这一点?
我找到一个解决方案
添加
@Inject
private DefaultClassPathResourceLoader resourceLoader;
...
Stream<URL> currencyStream = resourceLoader.getResources("currency/*.json");
long count = currencyStream.count();
...
但计数总是 0 =(
没有等效的 Resource
界面,但是您可以检索 URL 格式的资源。
注入一个io.micronaut.context.env.ResourceLoader
。它有 Stream<URL> getResources(String name)
编辑:一个例子
resourceLoader.getResources("some/directory/test.txt")
检查PathMatchingResourcePatternResolver
来自 io.micronaut.cli.io.support;
在 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");
我如何在 Micronaut 中做到这一点?
我找到一个解决方案
添加
@Inject
private DefaultClassPathResourceLoader resourceLoader;
...
Stream<URL> currencyStream = resourceLoader.getResources("currency/*.json");
long count = currencyStream.count();
...
但计数总是 0 =(
没有等效的 Resource
界面,但是您可以检索 URL 格式的资源。
注入一个io.micronaut.context.env.ResourceLoader
。它有 Stream<URL> getResources(String name)
编辑:一个例子
resourceLoader.getResources("some/directory/test.txt")
检查PathMatchingResourcePatternResolver 来自 io.micronaut.cli.io.support;