Azure Redis Cache によってクラウドで Redis を使用するように Spring Boot Initializer アプリを構成する

この記事では、Azure Portal を使用したクラウドでの Redis Cache の作成、 Spring Initializr を使用したカスタム アプリケーションの作成、Redis Cache を使用してデータを保存および取得する Java Web アプリケーションの作成について説明します。

前提条件

この記事の手順を実行するには、次の前提条件を満たす必要があります。

Spring Initializr を使用してカスタム アプリケーションを作成する

  1. https://www.microsoft.com を参照します。

  2. JavaMaven プロジェクトを生成することを指定して、Java バージョン 8 を選択し、アプリケーションの [グループ][アーティファクト] の名前を入力します。

  3. Spring Web セクションの依存関係を追加し、Web のチェックボックスをオンにします。次に、NoSQL セクションまで下にスクロールし、 [Spring Data Reactive Redis](Spring Data Reactive Redis) のチェックボックスをオンにします。

  4. ページの下部までスクロールし、 [Generate Project](プロジェクトの生成) をクリックします。

    基本的な Spring Initializr オプション

    注意

    Spring Initializr では、 [Group](グループ)[Aritifact](アーティファクト) の名前を使用してパッケージ名を作成します (例: com.contoso.myazuredemo)。

  5. ファイルをローカル システム上に展開したら、カスタム Spring Boot アプリケーションの編集を開始できます。

    カスタム Spring Boot プロジェクト ファイル

Azure で Redis Cache を作成する

  1. https://portal.azure.com/ で Azure Portal を参照し、 [+新規] をクリックします。

  2. [データベース] をクリックし、 [Redis Cache] をクリックします。

    Azure portal で [Redis Cache] を選択します。

  3. [新規 Redis Cache] ページで、以下の情報を指定します。

    • キャッシュの [DNS 名] を入力します。
    • [サブスクリプション][リソース グループ][場所] 、および [キャッシュの種類] を指定します。

    注意

    Redis キャッシュで SSL を使用できますが、Jedis のような異なる Redis クライアントを使用する必要があります。 詳細については、Java で Azure Redis Cache を使用する方法に関するページを参照してください。

    これらのオプションを指定したら、 [詳細設定] タブを選択します。

    Azure portal でキャッシュを作成します。

    [非 TLSポート] の横にあるチェック ボックスをオンにし、 [確認と作成] を選択し、仕様を確認して、 [作成] を選択します。

    Azure Cache の作成時に [非 TLS ポート] を選択します。

  4. キャッシュが作成されると、Azure の ダッシュボード のほか、 [すべてのリソース] ブレードと [Redis Cach] ページにも作成したキャッシュが表示されます。 これらのいずれかの場所でキャッシュをクリックすると、そのキャッシュのプロパティ ページを開くことができます。

    Azure portal 内のプロビジョニングされたリソース。

  5. キャッシュのプロパティの一覧が含まれているページが表示されたら、 [アクセス キー] をクリックし、キャッシュのアクセス キーをコピーします。

    [アクセス キー] セクションでアクセス キーをコピーします。

Redis Cache を使用するようにカスタム Spring Boot を構成する

  1. アプリの resources ディレクトリ内で application.properties ファイルを探すか、まだ存在しない場合はファイルを作成します。

    application.properties ファイルを探す

  2. テキスト エディターで application.properties ファイルを開き、そのファイルに次の行を追加し、サンプルの値を実際のキャッシュの適切なプロパティに置き換えます。

    # Specify the DNS URI of your Redis cache.
    spring.redis.host=myspringbootcache.redis.cache.windows.net
    
    # Specify the port for your Redis cache.
    spring.redis.port=6379
    
    # Specify the access key for your Redis cache.
    spring.redis.password=<your-redis-access-key>
    

    application.properties ファイルの編集

    注意

    SSL を有効にする Jedis のような異なる Redis クライアントを使用している場合は、SSL 使用する旨を application.properties ファイルで指定し、ポート 6380 を使用します。 次に例を示します。

    # Specify the DNS URI of your Redis cache.
    spring.redis.host=myspringbootcache.redis.cache.windows.net
    # Specify the access key for your Redis cache.
    spring.redis.password=<your-redis-access-key>
    # Specify that you want to use SSL.
    spring.redis.ssl=true
    # Specify the SSL port for your Redis cache.
    spring.redis.port=6380
    

    詳細については、Java で Azure Redis Cache を使用する方法に関するページを参照してください。

  3. application.properties ファイルを保存して閉じます。

  4. パッケージのソース フォルダーの下に controller という名前のフォルダーを作成します。次に例を示します。

    C:\SpringBoot\myazuredemo\src\main\java\com\contoso\myazuredemo\controller

    または

    /users/example/home/myazuredemo/src/main/java/com/contoso/myazuredemo/controller

  5. HelloController.java という名前の新しいファイルを controller フォルダー内に作成します。 テキスト エディターでそのファイルを開き、次の行を追加します。

    package com.contoso.myazuredemo;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.data.redis.core.ValueOperations;
    
    @RestController
    public class HelloController {
    
       @Autowired
       private StringRedisTemplate template;
    
       @RequestMapping("/")
       // Define the Hello World controller.
       public String hello() {
    
          ValueOperations<String, String> ops = this.template.opsForValue();
    
          // Add a Hello World string to your cache.
          String key = "greeting";
          if (!this.template.hasKey(key)) {
              ops.set(key, "Hello World!");
          }
    
          // Return the string from your cache.
          return ops.get(key);
       }
    }
    

    ここでは、com.contoso.myazuredemo を実際のプロジェクトのパッケージ名に置き換える必要があります。

  6. HelloController.java ファイルを保存して閉じます。

  7. Spring Boot アプリケーションを Maven でビルドし、実行します。次に例を示します。

    mvn clean package
    mvn spring-boot:run
    
  8. Web ブラウザーを使用して http://localhost:8080 を参照することによって Web アプリをテストするか、または curl が使用可能な場合は次の例のような構文を使用します。

    curl http://localhost:8080
    

    "Hello World!" というメッセージがサンプル コントローラーから表示されることがわかります。これは、Redis cache から動的に取得されます。

次のステップ

Spring および Azure の詳細については、Azure ドキュメント センターで引き続き Spring に関するドキュメントをご確認ください。

その他のリソース

Azure での Spring Boot アプリケーションの使用の詳細については、次の記事を参照してください。

Java での Azure の使用の詳細については、「Java 開発者向けの Azure」および「Azure DevOps と Java の操作」を参照してください。

Azure 上の Java での Redis Cache の使用開始について詳しくは、Java で Azure Redis Cache を使用する方法に関するページを参照してください。

Spring Framework は Java 開発者のエンタープライズ レベルのアプリケーション作成を支援するオープンソース ソリューションです。 このプラットフォームで構築される特に知られたプロジェクトの 1 つが Spring Boot です。これによって、スタンドアロンの Java アプリケーションの作成方法が簡略化されます。 Spring Boot を使い始めた開発者を支援するために、https://github.com/spring-guides/ では、サンプルの Spring Boot パッケージがいくつか用意されています。 基本的な Spring Boot プロジェクトの一覧から選択するだけでなく、 Spring Initializr は、開発者がカスタム Spring Boot アプリケーションの作成を開始できるように支援します。