美文网首页
Spring事务注解在类继承时的表现

Spring事务注解在类继承时的表现

作者: 田文健 | 来源:发表于2017-08-11 14:10 被阅读0次

最近在写一个很多数据表操作的项目,使用Spring+mybatis开发,写了很多的Service及其实现,这些service都有同样的风格,就是一些增删改查的功能。于是就想着写一个泛型接口GenericService和抽象类GenericServiceImpl,ServiceImpl直接继承泛型接口的实现类GenericServiceImpl,在GenericServiceImpl中通过虚函数获取DaoHelper和NAMESPACE,尽可能的保持扩展性。
但是这样的出了一个问题,子类在注册成service的时候,重新实现的方法上的@transactional注解无效,也就是事务控制不起作用了,测试了一下其他不用这种方式实现的ServiceImpl类的事务是OK的,那么问题就出现在继承上面,于是尝试在GenericServiceImpl类上面加上事务注解,测试发现又有了事务控制。
这样又带来一个问题,那就是所有的方法都有了事务,这会导致性能的损失,于是在GenericServiceImpl的每个方法上加上@Transactional(propagation = Propagation.SUPPORTS).根据Spring的描述在这种注解的情况下仍然会使用同步器,对性能的影响有待测试。

相关文章

网友评论

      本文标题:Spring事务注解在类继承时的表现

      本文链接:https://www.haomeiwen.com/subject/apulrxtx.html