依存します。
AnnotationCacheOperationSource javadocに従って、
このクラスは、Spring の Cacheable、CachePut、および CacheEvict アノテーションを読み取り、対応するキャッシング操作定義を Spring のキャッシュ インフラストラクチャに公開します。このクラスは、カスタム CacheOperationSource の基本クラスとしても機能する場合があります。
したがって、CacheOperationSource の拡張された動作のためにそのクラスを拡張できるかどうか、はい/いいえの答えを求めている場合、答えは「はい」です。
ただし、determineCacheOperations() メソッドが行うことは、使用可能なすべての CacheAnnotationParsers を使用することです。デフォルトの CacheAnnotationParser は SpringCacheAnnotationParser のみです。カスタムのものがある場合は、注釈用に CacheAnnotationParser を実装する別のクラスを用意してください。Spring はそれを自動的に使用する必要があります。SpringCacheAnnotationParser のソース コードを見て、その方法を確認できます。
編集:わかりました、これが自動的に行われるという点で私は間違っていました。私の次の提案は
- どうやらすでに行ったように、インターフェース CacheAnnotationParser を実装します
- AnnotationCacheOperationSource を拡張して、Spring に加えて独自の CacheAnnotationParser を内部パーサー コレクションに入れるようにします。
Spring と同じ ID を使用するようにカスタム AnnotationCacheOperationSource を定義して、Spring 内部をオーバーライドします。ID が一致する場合は、Spring をきれいにオーバーライドする必要があります。これは次のようになります。
<bean id="annotationCacheOperationSource"
class="com.company.YourCustomAnnotationCacheOperationSource" />