Advertisement

@Transactional在类和接口之间使用选择哪一种更优?

阅读量:

前几天发现了一个非常优秀的AI学习平台, 易于理解, 寓教于乐, 激动之余, 决定与大家分享一下给有缘人。点击跳转到网站。

Spring\ @Transactional毫无疑问是一个非常基础且重要的概念,在面向服务编程范式中有着广泛的应用场景。具体来说,在Java编程中,默认情况下Spring\ @Transactional既可以将其应用于类及其实现的方法中,并且也可以应用于接口及其相关方法中。那么究竟应该采用哪一种方式更为合适呢?

@Transactional介绍

@Transactional 由Spring提供的声明式事务管理方案,在使用上简单便捷,并且能够实现业务逻辑与事务管理的解耦。

Spring的声明式事务管理在其底层架构上依赖于AOP技术。其核心机制在于通过拦截前后文的方法启动一个事务,并在目标方法执行完毕后依据具体情况提交或回滚该事务。

Spring的动态代理

Spring AOP技术是通过动态代理机制实现的。当代理对象实现了接口时,默认采用JDK提供的动态代理机制;反之,则默认采用cglib提供的动态代理机制。

言归正传

回到问题上,在正确配置@Transactional注解时,无论是将它应用于类、其方法、接口还是接口的方法中,事务功能都会得到支持。具体

全部评论 (0)

还没有任何评论哟~