検索

1.6. Quarkus ディペンデンシーインジェクション (依存性の注入) の使用

download PDF

ディペンデンシーインジェクション (依存性の注入) により、クライアントによる消費とは完全に独立した方法で、サービスが使用されるようになります。クライアントの依存関係の作成がクライアントの動作から分離されるため、プログラム設計を疎結合にできます。

Red Hat build of Quarkus での依存性の注入は、Quarkus アーキテクチャーに合わせて調整された、コンテキストと依存性注入 (CDI) をベースとするビルドタイム指向の依存性注入ソリューションです。ArC は quarkus-resteasy の推移的な依存関係であり、 quarkus-resteasy はお客様のプロジェクトの依存関係であるため、ArC はすでにダウンロードされています。

前提条件

  • Quarkus Getting Started プロジェクトを作成している。

手順

  1. アプリケーションを変更し、コンパニオン Bean を追加するには、以下の内容で src/main/java/org/acme/quickstart/GreetingService.java ファイルを作成します。

    package org.acme.quickstart;
    
    import javax.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 javax.inject.Inject;
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    
    import org.jboss.resteasy.annotations.jaxrs.PathParam;
    
    @Path("/hello")
    public class GreetingResource {
    
        @Inject
        GreetingService service;
    
        @GET
        @Produces(MediaType.TEXT_PLAIN)
        @Path("/greeting/{name}")
        public String greeting(@PathParam String name) {
            return service.greeting(name);
        }
    
        @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String hello() {
            return "hello";
        }
    }
  3. アプリケーションを停止した場合は、以下のコマンドを入力して再起動します。

    ./mvnw quarkus:dev
  4. エンドポイントが hello quarkus を返すことを確認するには、新しいターミナルウィンドウに以下のコマンドを入力します。

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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.