因為這個問題沒有直接指向問題的地點, 所以找起來不是很容易.
但是如果找不到, 這個錯就會一直都存在.
原因分析: 在使用切面編程的時候, 沒有把切入點配置全面
解決方法: 在before, after, after-returning的注解后面都加上pointCut()方法
@Aspect @Component("tranManager") public class TransactionManager { @Autowired @Qualifier("session") private Session session = null; private Transaction transaction = null; @Pointcut("execution(* com.bj186.crm.service.impl.*.*(..))") public void pointCut() { } @Before("pointCut()") //這里添加切入點 public void begin() { transaction = session.beginTransaction(); } @AfterReturning("pointCut()") //這里也必須添加 public void commit() { transaction.commit(); } @AfterThrowing("pointCut()") //不添加切入點編譯不會報錯, 但是運行時會報錯 public void rollback() { transaction.rollback(); } }