0

Spring Data と Gemfire を使用してデータ サービスを開発しています。注釈あり

@Region("<region name>")

POJO を保存する Gemfire リージョンを指定します。

構成された Gemfire リージョンの名前が必要です。Gemfire クラスターは別のチームによって管理される予定であり、リージョン名は完全に構成可能であるべきだと考えているため、リージョンの名前をハードコーディングするのは悪い習慣だと思います。

地域名のハードコーディングを避けるためのより良い方法はありますか?

4

3 に答える 3

1

Spring Expression Language を使用してリージョンの名前を挿入できますか?

それ自体が XML ファイルに基づく構成 Bean からの値を @Value アノテーションに注入します。

@Value("#{config.dataSourceConfig.dbMainUsername}")

ここで、「config」は構成 Bean の名前です。

これがすべての注釈で機能するかどうかはわかりません...

于 2014-02-20T16:52:02.907 に答える
1

リージョン名は、リージョンにアクセスするすべてのプロセスで共有する必要があります。これは、リレーショナル データベースのテーブル名に似ています。この意味では、POJO が格納されるテーブル名を宣言する JPA または Hibernate アノテーションと違いはありません。IIRC は、Spring Data Repositories を使用して、@Region が存在しない場合、クラス名から取得します。ただし、いずれにしても、対応するリージョンが存在する必要があります。アプリケーションが GemFire グリッドのクライアントである場合は、サーバー上の対応するリージョンと同じ名前のクライアント リージョンも構成する必要があります。ピアの場合は、リージョン (パーティションまたはレプリカ) を作成する必要があります。これらのことは、Spring 構成またはネイティブの GemFire 構成で行うことができますが、いずれにせよ、共有リージョン名を事前に知っておく必要があり、変更する場合はどこでも変更する必要があります。

于 2014-02-06T13:58:39.447 に答える
0

一般に、アプリケーション ドメイン オブジェクトの @Region アノテーションでリージョンの名前/パスを指定することが必ずしも悪い習慣だとは思いません。それは確かにより明確です。

ただし、おそらく1つのenv(DEVなど)から別のenv(PRODなど)に昇格するときに、そのようなものを構成可能にする必要があることは理解できます。そのため、最近の変更を参照してください...

SGF-261 - アプリケーション ドメイン オブジェクト/エンティティを GemFire キャッシュ内の複数のリージョンに永続化できるようにする

この提案に加えて、将来の変更...

SGF-262 .

于 2014-03-06T23:56:17.657 に答える