0

プロジェクトで Spring Declarative Annotation ベースのキャッシングを使用しています。

applicationContext.xml

<cache:annotation-driven />

現在、スプリング アノテーション ベースのキャッシングを使用して、すべてが完全に機能します。開発およびローカル環境では、アンダーライン キャッシング メカニズムを使用ehCacheおよびベースにしています。ConcurrentHashMap

プロジェクトには、特定のビジネス要件で Spring キャッシュ フレームワークの動作を更新する必要があるという要件があります。

どうすれば交換できるかを理解するのを手伝ってくれる人がいるのだろうか

<cache:annotation-driven /> 

このアノテーションには、動作をカスタマイズできるスプリング クラス定義が含まれていますか?

4

2 に答える 2

2

org.springframework.cache.annotation.EnableCaching を確認してください。ソースコードのコメントを見てください。

< cache:annotation-driven /> と同等の機能を実行しますが、Spring Java config.

このクラスをオーバーライドする必要があります: org.springframework.cache.aspectj.AnnotationCacheAspect

アドバイスを配線する責任があります。

于 2012-09-25T19:32:52.537 に答える
0

この答えは私を正しい方向に導きます。Spring からのキャッシング サポートの内部動作について私が見つけたのは、cacheManager および KeyGenerator 実装の外部に注入された Dependency ではないということです。CacheAspectSupport をサブクラス化/拡張したかったのですが、このクラスは最初に CacheInterceptor によって拡張されましたが、そのクラスはクラス ProxyCachingConfiguration の新しいステートメントを使用して作成されました。1 つのクラス/メソッドを置き換えることができるようにするには、クラスのリスト全体を置き換える必要があります。

私が行の置き換えに期待していたのは、キャッシング サポートを構成するすべての AOP ポイントカット、アドバイス/アスペクトなどを構成する完全にリストされた一連の Spring Bean でしたが、これはすべて静的に作成されたようです互いに密結合しているクラス。

于 2012-09-28T20:29:18.723 に答える