1. 问题描述

对 Controller 类进行切面编程,没有warning,没有error,一直无效。。。

2. 问题原因

怀疑切点表达式错误(其实没错),切入点表达式如下所示:

// 定义切点表达式
    @Pointcut("execution(* com.wslxxy.controller.*.*(..))")
    private void myPointCut() {
    }

项目目录如下所示:

Spring中对Controller进行AOP切面编程无效问题解决_切面编程

各种修改切点表达式,没有结果,而且觉得错。

感觉没有逻辑错误~   那就可能是配置错误,有我不知道的什么点被忽略了。

对比一下,学习AOP时只对Dao层进行过切面编程,可能对Controller切面编程有我不知道的什么点,然后去看别人是怎么对Controller切面编程,果然有坑。

3. 错误解决

把  <aop:aspectj-autoproxy/>  从 beans.xml 移动到 spring-action.xml 中 。如下图所示:

Spring中对Controller进行AOP切面编程无效问题解决_切面编程_02

再次启动项目,AOP对Controller切面编程生效。

4. 参考文献

  • springmvc中aop对controller切面编程