做下笔记,以防忘记。

在Spring MVC 中使用面向切面编程,感觉所有的配置、切面、切点的编写都没有写错,但是当切点切在@Controller注解的类的方法上时就不起作用。当切点切在的其他的非@Controller注解的方法上时就起作用。

解决办法:在SpringMVC的配置文件中的加入一下代码即可解决:

<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>

至于原因:看网上的说法,目前不明觉厉。

The aspects and the beans to be applied needs to be in the same ApplicationContext but ApplicationContext is not aware of WebApplicationContext .


Indeed your controller (annotated by @Controller) and your aspects (annotated by @Aspect) should be in the same Spring context.

Usually people define their controllers in the dispatch-servlet.xml or xxx-servlet.xml and their service beans (including the aspects) in the main applicationContext.xml. It will not work.

When Spring initializes the MVC context, it will create a proxy for your controller but if your aspects are not in the same context, Spring will not create interceptors for them. 

参考:http://yjian84.iteye.com/blog/1920787

转载于:https://www.cnblogs.com/GooPolaris/p/7920363.html

Spring AOP 的切点切在Controller上没有起作用的问题。相关推荐

  1. 关于Spring AOP中切点修饰符@annotation、@args与args约束说明

    前言 于其说这是一篇文章,不如说这是一篇笔记,主要介绍了@annotation.@args和args的作用以及一些坑点.这里主要记录一些项目用到的,没有成一套体系,网上其他文章对Spring AOP的 ...

  2. @RequiresPermissions 在controller上不起作用

    @RequiresPermissions在controller上不起作用,在我的代码中是由于fillter是在spring容器中,而不是在springmvc容器中,所以不起作用,把@RequiresP ...

  3. Spring| AOP之 切点(Pointcut)

    文章目录 一. 什么是切点? 二. 切点表达式的使用? 三. Spring AOP所支持的AspectJ切点指示器 一. 什么是切点? 通知定义了切面的"什么"和"何时& ...

  4. java around_java - 使用Spring AOP时,在单个连接点上具有参数绑定的多个Around建议会导致错误 - 堆栈内存溢出...

    我在一个方法上写了2条注释,并在2条周围建议中处理了每个注释值. 连接点方法如下: @CacheFetch(cacheName = CacheManager.CACHE_DATASOURCE_INFO ...

  5. spring aop抽取切点表达式

  6. Spring AOP 切点(pointcut)表达式

    概括 这遍文章将介绍Spring AOP切点表达式(下称表达式)语言,首先介绍两个面向切面编程中使用到的术语. 连接点(Joint Point):广义上来讲,方法.异常处理块.字段这些程序调用过程中可 ...

  7. java获取方法上的注解_Spring:使用Spring AOP时,如何获取目标方法上的注解

    当使用spring AOP时,判断目标方法上的注解进行相关操作,如缓存,认证权限等 自定义注解 packagecom.agent.annotation;importjava.lang.annotati ...

  8. Spring AOP 简介以及简单用法

    Spring AOP 简介以及简单用法 如果你去面试java开发, 那么Spring的AOP和DI几乎是必问的问题. 那么AOP是什么呢? 一. AOP 所谓Aop就是 Aspect-Oriented ...

  9. 深入聊一聊 Spring AOP 实现机制

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 本文转载于公众号:吉姆餐厅ak 概述 AOP(Aspect-Oriented Programmin ...

最新文章

  1. Scikit Learn: 在python中机器学习
  2. APM - Javassist 入门 生成一个简单类
  3. 区块链分叉如何解决_什么是分叉区块链又该如何分叉
  4. AUTOSAR从入门到精通100讲(125)-详解车载网络 OTA系统的开发
  5. ajax-简单参数方法实现阴影效果
  6. 使用loadrunner编写webservice接口请求
  7. (14)Node.js 核心模块—http
  8. 把服务器文件,如何把文件放在服务器
  9. ESLint + lint-staged 禁用老项目中的es6
  10. 无法找到模块“mint-ui”的声明文件_[搬运] JavaScript 模块化:CommonJS vs AMD vs ES6...
  11. windows 上网重新刷新IP
  12. 突破网吧限制的安全技术(转)
  13. 【算法设计与分析】01 算法涉及的研究内容概述
  14. linux声道切换,linux下怎么把数据分别给左右声道
  15. RS232协议和RS485协议有什么不同?
  16. Win10 1903:美化鼠标指针
  17. 培训Java程序员技术真的差吗?
  18. Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现
  19. 腾讯云服务器443端口无法访问
  20. 矩阵论-线性空间与线性映射

热门文章

  1. lambda 对象初始化器 集合初始化器
  2. 漫步数学分析三十八——反函数定理
  3. fastjson解析JSON数据乱序导致的问题
  4. Map排序,获取map的第一值,根据value取key等操作(数据预处理)
  5. 打开Excel文件时出现提示:“向Excel发送命令时出现错误”解决方案
  6. SSM整合(相关jar包需求)
  7. CentOs基础操作指令(vim、关机)
  8. 路由器snmp配置_S7503E V7 snmpv3典型组网配置案例(与IMC联动)
  9. python列表分割_python列表分割
  10. c++ linux 线程等待与唤醒_Linux驱动程序基石-POLL机制(附.视频)