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

相关推荐
Albert Edison8 小时前
【Redis】Centos7.9 安装 Redis 5 教程
数据库·redis·缓存
逍遥德8 小时前
MQTT教程详解-05.SpringBoot集成mqtt client 性能分析
java·spring boot·spring·mt
云计算磊哥@8 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
云烟成雨TD8 小时前
Spring AI 1.x 系列【54】Retry 机制分析
java·人工智能·spring
weixin_523185328 小时前
Collections.unmodifiableMap详解:真的不可修改吗?
java·linux·前端
点燃大海8 小时前
SpringAI构建智能体
java·spring boot·spring·springai智能体
xier_ran8 小时前
【infra之路】02_RadixAttention与KV_Cache管理
java·spring boot·spring
小二·8 小时前
Redis 内存溢出(OOM)排查与恢复实战
数据库·redis·bootstrap
pqk6V6Vep8 小时前
Redis 分布式锁进阶第一篇讲解
数据库·redis·分布式
黑马师兄8 小时前
RAG混合检索深度解析:让AI真正找到你要的内容
java·人工智能·ai·agent·rag·ai-native