准备工作这些在这个博客:Spring的事物控制(利用xml进行开发)_Outlier_Lin的博客-优快云博客
我们前面知道有新注解,原始注解,我们可以通过这两种完全的替代xml文件,但是我这里就很简单,没用有新注解,所以有些就没有替代。
然后还有一些基础注解我也不解释了,直接去关于Spring事务控制有关的。
@Transactional(isolation = Isolation.READ_COMMITTED,propagation = Propagation.REQUIRED)
public void transfer(String outman, String inman, double money) {
accountDao.out(outman,money);
// int i=1/0;
accountDao.in(inman,money);
}
直接在方法上面加上注解@Transactional就可以了,然后在配置文件中可以配置的其他属性,也可以直接写在后面的参数中(如上面代码所示)。
然后在个注解也可以写在类上面,表示的类里面的所有方法都进行事务控制(有点像织入里面的切点表达式的作用写在不同的位置)
如果类上和方法上都有该注解,那么就用方法上的(就近原则)
记住还要在配置文件中加入配置:

第一个配置还是要写,你要告诉spring你用的什么数据库,第二个写出来是因为,只有写了这个配置,你写在类中的注解@Transactional才会起作用。
运行效果:(刚开始每人5000)


然后在service层的转账功能加入作死异常:

再运行(每人还是5000):

跟xml运行效果相同

这篇博客介绍了如何使用@Transactional注解在Spring中进行事务控制。通过在方法或类级别添加注解,可以实现事务管理,即使在出现异常时也能确保数据的一致性。示例展示了当转账服务引入错误时,事务回滚的效果,与XML配置方式达到相同的结果。
1097

被折叠的 条评论
为什么被折叠?



