搜索

1.6. 使用红帽构建的 Quarkus 依赖项注入

download PDF

通过依赖项注入,您可以以完全独立于任何客户端使用的方式使用服务。它将客户端依赖项的创建与客户端的行为分开,这使得程序设计能够松散耦合。

红帽构建的 Quarkus 中的依赖注入基于 Quarkus ArC,它是基于上下文和依赖注入(CDI)的基于构建时导向的依赖项注入解决方案,专为 Quarkus 架构量身定制。因为 ArC 是 quarkus-resteasy-reactive 的传输依赖项,并且 quarkus-resteasy-reactive 是项目的依赖项,所以 ArC 已下载。

先决条件

  • 您已创建了 Quarkus Getting Started 项目。

流程

  1. 要修改应用程序并添加 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;
        }
    
    }
  2. 编辑 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";
        }
    }
  3. 如果您停止了应用程序,请输入以下命令重启它:

    ./mvnw quarkus:dev
  4. 要验证端点是否返回 hello quarkus,请在一个新的终端窗口中输入以下命令:

    curl -w "\n" http://localhost:8080/hello/greeting/quarkus
    hello quarkus
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.