4.2. 埋め込みキャッシュを使用したオンデマンドのデータ変換


埋め込みキャッシュには、application/x-java-object のデフォルトのリクエストエンコーディングと、キャッシュに設定したメディアタイプに対応するストレージエンコーディングがあります。つまり、Data Grid はアプリケーションからの POJO をキャッシュのストレージエンコーディングにマーシャルし、POJO をアプリケーションに返します。複雑なシナリオによっては、AdvancedCache API を使用して POJO との間のデフォルト変換を他のエンコーディングに変更できます。

以下の例では、withMediaType() メソッドを使用して、オンデマンドで application/json として値を返します。

MediaType を使用した高度なキャッシュ

DefaultCacheManager cacheManager = new DefaultCacheManager();

// Encode keys and values as Protobuf
ConfigurationBuilder cfg = new ConfigurationBuilder();
cfg.encoding().key().mediaType("application/x-protostream");
cfg.encoding().value().mediaType("application/x-protostream");

cacheManager.defineConfiguration("mycache", cfg.build());

Cache<Integer, Person> cache = cacheManager.getCache("mycache");

cache.put(1, new Person("John","Doe"));

// Use Protobuf for keys and JSON for values
Cache<Integer, byte[]> jsonValuesCache = (Cache<Integer, byte[]>) cache.getAdvancedCache().withMediaType("application/x-protostream", "application/json");

byte[] json = jsonValuesCache.get(1);

JSON 形式で返される値

{
   "_type":"org.infinispan.sample.Person",
   "name":"John",
   "surname":"Doe"
}

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.