2017-12-20 6 views
0

サービスフレームでREST APiをキャッシュするためにSpringフレームワークとヘリキャストキャッシュを使用しています。私がキャッシングしているAPIには、@ cacheableアノテーションとcachenameとkeygeneratorがあります。私はアプリケーションのプロパティまたはconsulプロパティを使用してキャッシュを有効/無効にする最良の方法を探しています。そのため、@Cachableアノテーションのcondition属性にプロパティを渡そうとしていますが、動作していません。このアプローチでは、同じ値を複数の場所で渡すことになります(APIレベルでキャッシュするところはどこでも)。そのような操作を処理する良い方法はありますか?ここでは例として、 はmyFirstAPIによって返さここでは、コードスニペットSpring Framework + Hazelcast、@Cacheableアノテーションを使用してキャッシュを有効/無効にする方法

@Cacheable(cacheNames = CacheName.MyCache1,keyGenerator = "customKeyGen") 
public CachingObject myFirstAPI(String param1, String param2) { 
} 

customKeyGenを使用しますhazelcastキャッシュと置く値(CachingObject)です。この操作を無効にする必要がある場合、現在の方法は、キャッシュを作成する前にフラグ/条件を評価し、条件が真(つまりキャッシュが有効)である場合にのみ値をキャッシュするように、例えば私の場合は

@Cacheable(cacheNames = CacheName.MyCache1,keyGenerator = "customKeyGen", condition="${enableCache}") 
public CachingObject myFirstAPI(String param1, String param2) { 
} 

は(それが現在SpelEvaluationException、プロパティまたはフィールド「enableCache」を投げているなぜ私は把握します、私は条件投げる例外を渡してい式言語は、ORG」タイプのオブジェクトで見つけることができません。キャッシングを有効/無効にする正しい方法はありますか?提案してください。

答えて

関連する問題