3.7.5.2. MediaType プログラムによるオーバーライド
異なる MediaType でキャッシュをデコードし、キャッシュ操作を実行し、異なるデータフォーマットの送受信を行うことができます。
例:
DefaultCacheManager cacheManager = new DefaultCacheManager();
// The cache will store POJO for keys and values
ConfigurationBuilder cfg = new ConfigurationBuilder();
cfg.encoding().key().mediaType("application/x-java-object");
cfg.encoding().value().mediaType("application/x-java-object");
cacheManager.defineConfiguration("mycache", cfg.build());
Cache<Integer, Person> cache = cacheManager.getCache("mycache");
cache.put(1, new Person("John","Doe"));
// Wraps cache using 'application/x-java-object' for keys but JSON for values
Cache<Integer, byte[]> jsonValuesCache = (Cache<Integer, byte[]>) cache.getAdvancedCache().withMediaType("application/x-java-object", "application/json");
byte[] json = jsonValuesCache.get(1);
JSON 形式で値を返します。
{
"_type":"org.infinispan.sample.Person",
"name":"John",
"surname":"Doe"
}
Important
ほとんどのトランスフォーマーはサーバーモードが使用される場合にインストールされます。ライブラリーモードを使用する場合は、追加の依存関係 org.infinispan:infinispan-server-core をプロジェクトに追加する必要があります。