这是我在spring.xml的配置:
接着我在context-servlet.xml配置了这个:
然后是我在控制器里的代码:
控制器里的插入和删除不用说了,都是从service层调用的,我在service层中的删除方法中抛各了各RuntimeException异 常,当运行程序的时候,程序确实走到了catch里面,尽管数据没有删除,但却新增了一条数据。而我要的是,当删除出错时,先前的插入操作也会回滚。
后来听从同事的建议,把事务管理的范围从service层转到controller,也就是expression="execution(* com.kugou.web.*.*(..))",但还是不行
使用的是mysql,默认的是innodb引擎。没办法,我只好使用注解式的,成功。看来是切面配置的有问题。
---没贴全,我在删除操作的后面,加上了throw new Exception();
定义一个异常类,捕获到了就回滚呗
没贴全,我在删除操作的后面,加上了throw new Exception();的