HierCast、スプリングブートとスプリングデータ

3755 ワード

このブログでは、Hibernate、Spring Boot、Spring Data JPAを使用してHibernate 2レベルキャッシュを実装する方法を説明します.ソースコードと設定ファイルはGithubにアップロードされます

技術

  • スプリングブート2.2.X
  • 春のデータJPA 2.2.X
  • ヘーゼルキャスト4.0
  • のDocker
  • HelelCastインスタンスを起動する


    HazelCastインスタンスはDockerコンテナとして設定されます.
    ドッカーヘーゼルキャスト.気象研
    HazelCastインスタンスと管理センターを次のコマンドを使用して起動します.
    $ docker-compose -f <location of the docker-hazelcast.yml > up
    
    ヘーゼルキャスト管理センターは、http://localhost:8090/login.htmlで稼働しなければなりません.管理ダッシュボードを確認するには、新しいアカウントを作成します.

    デフォルトのダッシュボード
    クラスタ設定を追加し、新しく作成したクラスタ設定を追加します.クラスタ名をdev (デフォルト名)に入力し、192.168.1.157をホストのIPアドレスに置き換えます.

    devクラスタの追加
    設定を保存し、追加のクラスタのリストを参照してくださいにホームページに移動します.devクラスタを選択し、次のダッシュボードを参照してください

    devダッシュボード

    スプリングブートアプリケーション

  • HazelCastConfigクラスは、春のブートアプリケーションをHazelCastクラスタに接続するために必要な設定Beanを定義します
    HazelCastConfig.ジャバ
    2 .デモスプリングブートアプリケーションでは、EmployeeControllerを使用した従業員ドメインオブジェクトと、Spring Data JPAを使用して定義されています.データを永続化するのにメモリデータベースのH 2を使用する
    @Data  
    @Entity  
    @Cache(region = “employeeCache”, usage = CacheConcurrencyStrategy.READ\_WRITE)  
    public class Employee  
    {   
       @Id   
       private String empId;   
       private String empName;  
    }
    
    3 .注釈キャッシュ@ Hazelcastキャッシュ内のEmploiceCacheマップを作成し、CachePutとCacheevit操作の面倒を見る.デフォルトのfindall ()では、CREATE , UPDATE , DELETEメソッドコールHITデータベースとFindById ()メソッドはHazelcastキャッシュに衝突します.
    アプリケーションを実行し、すべての従業員を参照するhttp://localhost:8080/api/v1/employee/find/allに行く.
    リンクを押して新しい従業員を作成http://localhost:8080/api/v1/employee/create
    Hibernate Logs:  
    Hibernate: select employee0\_.emp\_id as emp\_id1\_0\_0\_, employee0\_.emp\_name as emp\_name2\_0\_0\_ from employee employee0\_ where employee0\_.emp\_id=?Hibernate: insert into employee (emp\_name, emp\_id) values (?, ?)Hibernate: select employee0\_.emp\_id as emp\_id1\_0\_0\_, employee0\_.emp\_name as emp\_name2\_0\_0\_ from employee employee0\_ where employee0\_.emp\_id=?  
    
    
    Hibernateログを見ると、2 findall ()メソッドコールに対する2つのSELECT文、FindById ()メソッドコールの1 insert文が表示されます.
    5 .ステップ2で作成したIDを提供して従業員情報を取得します.http://localhost:8080/api/v1/employee/find/< Yourse - emptyのID.Hibernateログを見ると、何も見えなくなります.つまり、SpringブートはHazelcastキャッシュから従業員レコードをデータベースをヒットさせずに返しました.
    7 . Hazelcast Management Centerから次のEmployeeCacheマップを見てください.キャッシュを取得し、キャッシュする場所をすべて表示する必要があります

    ソースコードは、参照およびハッピーコーディング