准备工作这些在这个博客:Spring的事物控制(利用xml进行开发)_Outlier_Lin的博客-CSDN博客
我们前面知道有新注解,原始注解,我们可以通过这两种完全的替代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运行效果相同