spring声明式事务@Transactional注解继承问题

最近的遇到的几个项目,使用mybaits框架时,都喜欢抽象出AbstractService类,然后给各业务Service进行继承使用。但是AbstractService类确没有增加@Transactional注解,只有子类Service才增加了@Transactional注解,这就导致AbstractService类的方法操作时都没带事务的。

使用spring的声明式事务时,如果使用@Transactional注解,一定要注意注解只对当前类或方法有效,对继承的方法是无效的。但是如果是父类增加了@Transactional,由于此注解增加了@Inherited继承原注解,所以对子类是有效的。

例如 public class A extends B {...} 的情况,

(1)如果注解是加在A类名上,只会对A类下的方法进行事务拦截,父类B的方法是都不会有事务拦截的。

(2)如果注解是加在B类名上,对B类下的方法进行事务拦截,同时也会对子类A下的方法也进行事务拦截。

相关推荐
AAA修煤气灶刘哥5 小时前
缓存这「加速神器」从入门到填坑,看完再也不被产品怼慢
java·redis·spring cloud
练习时长一年5 小时前
Spring事件监听机制(三)
java·后端·spring
月阳羊5 小时前
【硬件-笔试面试题-69】硬件/电子工程师,笔试面试题(知识点:电机驱动电路的反馈电路)
java·经验分享·嵌入式硬件·面试
2301_781392525 小时前
用spring框架实现简单的MVC业务
java·后端·spring
phltxy5 小时前
SpringMVC 程序开发
java·后端·spring
至此流年莫相忘5 小时前
设计模式:模板方法模式
java·开发语言·设计模式
人机1015 小时前
Spring Security - FilterChainProxy
java
dreams_dream5 小时前
企业级 Django 日志配置示例
数据库·django·sqlite
络76 小时前
Redis 非缓存核心场景及实例说明
数据库·redis·缓存
SimonKing6 小时前
Apache Commons Math3 使用指南:强大的Java数学库
java·后端·程序员