在service中自己执行的方法抛出异常之后添加自己的拦截器,保存所抛出的异常信息到数据库表中;
但保存异常信息的这些操作通过调用一个服务类的方法来执行,这个方法也在spring事务管理拦截器的管理之下,那么这个记录方法需要在另一个事务中进行,而不是与被拦截方法在同一个事务中,不然如果被拦截方法抛出异常需要回滚时,所作的记录也会被回滚;
具体的解决方法:将保存异常信息的service方法设置为:REQUIRES_NEW,此时会新建一个事务进行操作;参考:http://blog.csdn.net/sghys/article/details/2021338