1.6. 使用红帽构建的 Quarkus 依赖项注入
通过依赖项注入,您可以以完全独立于任何客户端使用的方式使用服务。它将客户端依赖项的创建与客户端的行为分开,这使得程序设计能够松散耦合。
红帽构建的 Quarkus 中的依赖注入基于 Quarkus ArC,它是基于上下文和依赖注入(CDI)的基于构建时导向的依赖项注入解决方案,专为 Quarkus 架构量身定制。因为 ArC 是 quarkus-resteasy-reactive
的传输依赖项,并且 quarkus-resteasy-reactive
是项目的依赖项,所以 ArC 已下载。
先决条件
- 您已创建了 Quarkus Getting Started 项目。
流程
要修改应用程序并添加 companion bean,请使用以下内容创建
src/main/java/org/acme/quickstart/GreetingService.java
文件:package org.acme.quickstart; import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped public class GreetingService { public String greeting(String name) { return "hello " + name; } }
编辑
src/main/java/org/acme/quickstart/GreetingResource.java
以注入GreetingService
,并使用它来创建新端点:package org.acme.quickstart; import jakarta.inject.Inject; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; @Path("/hello") public class GreetingResource { @Inject GreetingService service; @GET @Produces(MediaType.TEXT_PLAIN) @Path("/greeting/{name}") public String greeting(String name) { return service.greeting(name); } @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return "Hello from RESTEasy Reactive"; } }
如果您停止了应用程序,请输入以下命令重启它:
./mvnw quarkus:dev
要验证端点是否返回
hello quarkus
,请在一个新的终端窗口中输入以下命令:curl -w "\n" http://localhost:8080/hello/greeting/quarkus hello quarkus