8

私たちはキャッシングに Spring キャッシュ フレームワークを使用しており、「book」や「isbn」などのキャッシュ用に複数の名前空間をサポートできるようにしたいと考えています。持つことの

@Cacheable({ "book","isbn"})
public Book findBook(ISBN isbn) {...}

次のように、キャッシュ名を動的に設定できるように、何らかの方法でプロパティ ファイルからキャッシュ名を挿入できるようにしたいと考えています。

@Cacheable({ #cachename1, #cachename2})
public Book findBook(ISBN isbn) {...}

ここでは SpEL を使用していますが、これが実行可能かどうかはわかりません。

4

4 に答える 4

3

Spring 4.1 では が導入されCacheResolver、自己定義CacheResolverを使用して選択しCache、動的にすることができます。spring 4.1 キャッシュの改善

于 2016-01-21T10:09:49.777 に答える
0

キャッシュを直接使用することもでき、すべてがさらに予測可能になります

EhCacheCacheManager cacheManager = (EhCacheCacheManager) CDBBeanFactory.instance().getBean("cacheManager");
CacheManager manager cacheManager.getCacheManager();
manager.getCache("cacheBin").get("key");
manager.getCache("cacheBin").put(new Element(key, obj));

など..

于 2015-05-15T13:33:05.583 に答える
0

valueいいえ、 @Cacheable アノテーションのキャッシュ名 ( ) プロパティでは、動的 (SpEL またはその他の) 式はサポートされていません。の独自のバージョンを実装org.springframework.cache.annotation.SpringCacheAnnotationParserし、それをフレームワークに挿入する必要があります。

于 2012-11-02T08:03:06.770 に答える