7.4.3.3. 高度な外部データベースの登録


以下の例は、以前に保存した Person オブジェクトの高度な外部サイザー実装を登録するために必要な設定のタイプを示しています。

infinispan.xml

<infinispan>
  <cache-container>
    <serialization>
      <advanced-externalizer class="Person$PersonExternalizer"/>
    </serialization>
  </cache-container>
  ...
</infinispan>

プログラムで行う:

GlobalConfigurationBuilder builder = ...
builder.serialization()
   .addAdvancedExternalizer(new Person.PersonExternalizer());

前述のように、これらの外部データベース実装を一覧表示すると、ユーザーは getId()実装ではなく、XML またはプログラムを使用して外部ナライザーの識別子をオプションで指定できます。ここでも、識別子を維持するための集中的な方法を提供しますが、ルールは明確であることが重要です。XML/programmatic 設定またはアノテーション経由の AdvancedExternalizer の実装は、識別子に関連付ける必要があります。そうでない場合、Red Hat Data Grid はエラーをスローし、起動を中止します。特定の AdvancedExternalizer 実装が XML/programmatic 設定とアノテーションの両方で ID を定義する場合、XML/プログラムで定義した値は、使用される値になります。id が登録時に定義される外部データベースの例を以下に示します。

infinispan.xml

<infinispan>
  <cache-container>
    <serialization>
      <advanced-externalizer id="123"
                            class="Person$PersonExternalizer"/>
    </serialization>
  </cache-container>
  ...
</infinispan>

プログラムで行う:

GlobalConfigurationBuilder builder = ...
builder.serialization()
   .addAdvancedExternalizer(123, new Person.PersonExternalizer());

最後に、プログラムによる設定に関するいくつかのメモです。GlobalConfiguration.addExternalizer()は varargs を取ります。したがって、ID が @Marshalls アノテーションですでに定義されていることを仮定して、複数の外部ライザーを 1 度だけ登録できることを意味します。以下に例を示します。

builder.serialization()
   .addAdvancedExternalizer(new Person.PersonExternalizer(),
                            new Address.AddressExternalizer());
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る