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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC中配aop拦截不生效,咋回事相关的知识,希望对你有一定的参考价值。

可能和spring版本有关系,我的是spring4.x,之前也遇到。

首先我的aop切面类文件路径有问题,后来移到了logic下的util包中;
<aop:aspectj-autoproxy proxy-target-class="true"/>
放在spring-mvc.xml中即可。
附上拦截controller的类:

package com.ts.bg.logic.util;

import javax.servlet.http.HttpServletRequest;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

@Component
@Aspect
public class IndexAopUtil

//设置切入点,匹配所有controller的toIndex方法
public static final String INDEX_LIST_INIT="execution(* com.ts.bg.controller.*.toIndex(..))";

@Around(INDEX_LIST_INIT)
public Object index_list_init(ProceedingJoinPoint joinPoint) throws Throwable
Object object =null;
Object[] args = joinPoint.getArgs();
if(args!=null)
HttpServletRequest request=(HttpServletRequest) args[0];
object=joinPoint.proceed();
//设置菜单编号
request.setAttribute("menuCode", request.getParameter("menuCode"));

return object;



该类的意义:拦截所有controller目录下的controller中的toIndex方法。
网上有说controller类拦截不到,用其他方式,我试过了,不行。
参考技术A 首先确认aop切面类文件路径有没有问题,后来移到了logic下的util包中;

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

放在spring-mvc.xml中即可。
附上拦截controller的类:

package com.ts.bg.logic.util;

import javax.servlet.http.HttpServletRequest;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

@Component
@Aspect
public class IndexAopUtil

//设置切入点,匹配所有controller的toIndex方法
public static final String INDEX_LIST_INIT="execution(* com.ts.bg.controller.*.toIndex(..))";

@Around(INDEX_LIST_INIT)
public Object index_list_init(ProceedingJoinPoint joinPoint) throws Throwable
Object object =null;
Object[] args = joinPoint.getArgs();
if(args!=null)
HttpServletRequest request=(HttpServletRequest) args[0];
object=joinPoint.proceed();
//设置菜单编号
request.setAttribute("menuCode", request.getParameter("menuCode"));

return object;


该类的意义:拦截所有controller目录下的controller中的toIndex方法。
网上有说controller类拦截不到,用其他方式,我试过了,不行。

可能和spring版本有关系,我的是spring4.x。

刚更新WIN11电脑就卡死咋回事?

Win11系统很不稳定,BUG很多,建议用以下方法回退到早期版本。
进入设置界面→Windows Update→以前版本的Windows→返回→随便选择一个原因,点击下一步→检查更新,点击“不,谢谢”→下一页→下一页→回退到早期版本。
如果不习惯使用WIN11系统,也可以用驱动人生的重装系统功能回到Win10系统。
参考技术A 您可以尝试清理磁盘空间。大多数情况下,您可以在等待一段时间后继续升级。 参考技术B 应该是WIN11系统刚推出不稳定,建议等优化。
——回答来自河南新华电脑学院
参考技术C 我只能说做小白鼠的代价吧。Win11还不稳定。不用追新。

以上是关于SpringMVC中配aop拦截不生效,咋回事的主要内容,如果未能解决你的问题,请参考以下文章

nginx重启不生效是咋回事

springmvc里面自定义注解实现aop,controller层里面注解一直不生效,但是注解放在service层又可以??

Spring AOP中@Aspect拦截介绍(一)

spring AOP 拦截器实现问题

Spring 嵌套方法AOP不生效问题

SpringBoot 基础系列接口上注解 AOP 拦截不到场景兼容实例演示