spring事务的原理是AOP,那么失效的原因是原来的AOP不起作用了,常见的情况有以下几种1.发生自调用,类里面使用this调用本类的方法,此时this对象不是代理对象,要使用注入的Bean调用2.不是public方法3.数据库不支持事务,myisam数据库不支持事务4.没有被spring管理,比如没有加@Service注解5.异常被吃掉,事务不会回滚,或者抛出的异常没有被定义,默认为RuntimeExceptioin