Inspectopedia Help

Cache* annotations defined on interfaces/interface methods

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.

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Spring, 233.SNAPSHOT

Last modified: 13 July 2023