HierCast、スプリングブートとスプリングデータ
3755 ワード
このブログでは、Hibernate、Spring Boot、Spring Data JPAを使用してHibernate 2レベルキャッシュを実装する方法を説明します.ソースコードと設定ファイルはGithubにアップロードされます
スプリングブート2.2.X 春のデータJPA 2.2.X ヘーゼルキャスト4.0 のDocker HelelCastインスタンスを起動する
HazelCastConfigクラスは、春のブートアプリケーションをHazelCastクラスタに接続するために必要な設定Beanを定義します
HazelCastConfig.ジャバ
2 .デモスプリングブートアプリケーションでは、EmployeeControllerを使用した従業員ドメインオブジェクトと、Spring Data JPAを使用して定義されています.データを永続化するのにメモリデータベースのH 2を使用する
アプリケーションを実行し、すべての従業員を参照するhttp://localhost:8080/api/v1/employee/find/allに行く.
リンクを押して新しい従業員を作成http://localhost:8080/api/v1/employee/create
5 .ステップ2で作成したIDを提供して従業員情報を取得します.http://localhost:8080/api/v1/employee/find/< Yourse - emptyのID.Hibernateログを見ると、何も見えなくなります.つまり、SpringブートはHazelcastキャッシュから従業員レコードをデータベースをヒットさせずに返しました.
7 . Hazelcast Management Centerから次のEmployeeCacheマップを見てください.キャッシュを取得し、キャッシュする場所をすべて表示する必要があります
ソースコードは、参照およびハッピーコーディング
技術
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ダッシュボード
スプリングブートアプリケーション
$ docker-compose -f <location of the docker-hazelcast.yml > up
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マップを見てください.キャッシュを取得し、キャッシュする場所をすべて表示する必要があります
ソースコードは、参照およびハッピーコーディング
Reference
この問題について(HierCast、スプリングブートとスプリングデータ), 我々は、より多くの情報をここで見つけました https://dev.to/pavankjadda/hibernate-2nd-level-cache-with-hazelcast-spring-boot-and-spring-data-jpa-289lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol