Spring / Spring Data Access
Why applying Spring Transactional annotation on the concrete class or its methods is recommended rater than on interface?
Spring recommends annotating concrete classes and its methods with the @Transactional annotation, as opposed to annotating interfaces.
You can place the @Transactional annotation on an interface (or an interface method), but this works only if you are using interface-based proxies.
Java annotations are not inherited from interfaces means that if you are using class-based proxies ( proxy-target-class="true") or the weaving-based aspect ( mode="aspectj"), then the transaction settings are not recognized by the proxying and weaving infrastructure, and the object will not be wrapped in a transactional proxy.
More Related questions...