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


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

Red Hat ビルドの Quarkus におけるディペンデンシーインジェクション (依存性の注入) は、Quarkus ArC をベースとしています。Quarkus ArC とは、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;
        }
    
    }
    Copy to Clipboard Toggle word wrap
  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";
        }
    }
    Copy to Clipboard Toggle word wrap
  3. アプリケーションを停止した場合には、以下のコマンドを入力して再起動します。

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

    curl -w "\n" http://localhost:8080/hello/greeting/quarkus
    hello quarkus
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat