楼上两位说的都很对,你的方式是将AOP的切点设置在DAO层中,但如此事务必然会回滚你的DAO同时回滚你的AOP方法;而你这样的需求应该将两个过程解耦,DAO应该处于最底层,将AOP的切点移到DAO层之上。
由于你的DAO方法设置了回滚, 而你AOP的切点又是处于DAO方法中, 即DAO包含了你的AOP切点 所以按我的理解 你的要求应该达不到
在程序中多加一层,比如叫“service”,用service的方法包装dao的方法,然后在service的方法上做aop。