Spring AOP拦截对Controller的请求时的配置失败

Posted 火凤凰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring AOP拦截对Controller的请求时的配置失败相关的知识,希望对你有一定的参考价值。

简单的说,就是父子容器的问题,将AOP的配置信息放在applicationContext.xml中,该配置文件被ContextLoaderListener加载,Spring会创建一个WebApplicationContext的上下文,称为父上下文(父容器),保存在 ServletContext中,key值为WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE。而spring-mvc.xml是DispatcherServlet 的配置文件,这样的servlet可以同时配置多个,每个 DispatcherServlet有一个自己的上下文对象(WebApplicationContext),称为子上下文(子容器),子上下文可以访问父上下文中的内容,但父上下文不能访问子上下文中的内容。 它也保存在 ServletContext中, key值是"org.springframework.web.servlet.FrameworkServlet.CONTEXT"+Servlet名称。当spring加载父容器的时候就会去找切入点,但是这个时候切入的controller是在子容器中的,父容器是无法访问子容器,所以就拦截不到。

 

所以把拦截扫描包得代码从 applicationcontent 中提取到 springmvc-servlet 的配置文件中 即可。

以上是关于Spring AOP拦截对Controller的请求时的配置失败的主要内容,如果未能解决你的问题,请参考以下文章

SpringMVC中配aop拦截不生效,咋回事

Spring aop 拦截不到Dao

SpringMVC中配aop拦截不生效,咋回事

Spring AOP获取拦截方法的参数名称跟参数值

spring boot aop日志管理(MongoDB)

Spring AOP 针对注解的AOP