Inspectopedia
 
2024.3

Cache* annotations defined on interfaces/interface methods

Warning
New
Last modified: 03 December 2024

Reports @Cache* annotations on interfaces.

You should annotate only concrete classes (and methods of concrete classes) with @Cache*. Annotating an interface (or an interface method) with @Cache* requires using interface-based proxies. Since Java annotations are not inherited from interfaces, the proxying and weaving infrastructure will not be able to recognize the caching settings when using class-based proxies (proxy-target-class="true") or the weaving-based aspect (mode="aspectj"). As a result, the object will not be wrapped in a caching proxy.