Java Micronaut中是否有弹簧资源的等效物?

Java Micronaut中是否有弹簧资源的等效物?,java,micronaut,Java,Micronaut,我正在将一个小型Spring引导应用程序迁移到Micronaut 1.0.1,我想知道是否有一个与org.springframework.core.io.Resource及其实现(如ClasspathResource)等价的应用程序 在SpringBoot中,我使用服务的构造函数将资源注入到服务中 @Service public class MyService() { private final Resource resource; public MyService(Reso

我正在将一个小型Spring引导应用程序迁移到Micronaut 1.0.1,我想知道是否有一个与
org.springframework.core.io.Resource
及其实现(如
ClasspathResource
)等价的应用程序

在SpringBoot中,我使用服务的构造函数将资源注入到服务中

@Service
public class MyService() {

    private final Resource resource;

    public MyService(Resource resource) { this.resource = resource; }
}
如何在Micronaut中执行此操作

@Singleton
public class MyService() {

    private final Resource resource;

    @Inject
    public MyService(Resource resource) { this.resource = resource; }
}

在Micronaut中,您可以使用
io.Micronaut.core.io.ResourceLoader
变体,例如
io.Micronaut.core.io.scan.ClassPathResourceLoader
io.Micronaut.core.io.file.FileSystemResourceLoader
。获取它们的一个选项是通过
io.micronaut.core.io.ResourceResolver

ClassPathResourceLoader=new ResourceResolver().getLoader(ClassPathResourceLoader.class).get();
可选资源=loader.getResource(“classpath:foo/bar.txt”);

我使用了
io.micronaut.core.io.ResourceLoader
。通过构造函数连接:

@控制器(“根”)
公共类MyController{
私人最终资源装载机;
公共MyController(资源加载程序){
this.loader=loader;
}
@获取(“/索引”)
@生成(MediaType.TEXT\u HTML)
公共字符串greet()引发IOException{
返回新字符串(loader.getResourceAsStream(“index.html”).get().readAllBytes());
}
}
我的
index.html
src/main/resources/index.html

运行良好,但您可以做得更好。在Micronaut中,您可以使用。它大致相当于Spring的
资源
。您还可以在中使用
Readable
,从而将配置yaml/属性直接绑定到
Readable
属性:

micronaut:
应用程序:
名称:Demo
图像:
图像文件:“classpath:images/bismarckia nobilis.jpg”
#图像文件:“文件:/path/to/images/bismarckia nobilis.jpg”
其他文件:
-“classpath:images/bismarckia nobilis.jpg”
-“classpath:images/bambol.jpg”
-“类路径:images/hibiscus.jpg”
我创造了:

  • 博文:
  • 演示: