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下的方法也进行事务拦截。

相关推荐
无巧不成书02185 小时前
30分钟入门Java:从历史到Hello World的小白指南
java·开发语言
成为大佬先秃头6 小时前
数据库连接池:Druid
数据库·mysql·druid
zs宝来了6 小时前
Playwright 自动发布 CSDN 的完整实践
java
吴声子夜歌7 小时前
TypeScript——基础类型(三)
java·linux·typescript
晓华-warm8 小时前
Warm-Flow 1.8.5 正式发布:超时自动审批、暂存功能来了!
数据库
DynamicsAgg9 小时前
企业数字化底座-k8s企业实践系列第二篇pod创建调度
java·容器·kubernetes
森林里的程序猿猿9 小时前
并发设计模式
java·开发语言·jvm
222you9 小时前
四个主要的函数式接口
java·开发语言
Javatutouhouduan9 小时前
Java全栈面试进阶宝典:内容全面,题目高频!
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文