在春天引导中,简单几步,使用spring AOP实现一个拦截器:
<强> 1,引入依赖强>:
& lt; dependency>
& lt; groupId> org.springframework.boot
& lt; artifactId> spring-boot-starter-aop
& lt;/dependency>
& lt; dependency>
& lt; groupId> org.springframework.boot
& lt; artifactId> spring-boot-starter-aop
& lt;/dependency>>之前
<强>,2,创建拦截器类(在该类中,定义了拦截规则:拦截com.xjj.web.controller包下面的所有类中,有@RequestMapping注解的方法):强>
/* *
*拦截器:记录用户操作日志,检查用户是否登录……
* @author XuJijun
*/@Aspect
@ component
公开课ControllerInterceptor {
私有静态最终日志记录器=LoggerFactory.getLogger (ControllerInterceptor.class);
@ value (" $ {spring.profiles} ")
私人字符串env;/* *
*定义拦截规则:拦截com.xjj.web.controller包下面的所有类中,有@RequestMapping注解的方法。
*/@Pointcut(“执行(* com.xjj.web.controller . . *(. .))和@annotation (org.springframework.web.bind.annotation.RequestMapping)”)
公共空间controllerMethodPointcut () {}/* *
*拦截器具体实现
* @param pjp
* @return JsonResult(被拦截方法的执行结果,或需要登录的错误提示)。
*/@Around (“controllerMethodPointcut())//指定拦截器规则;也可以直接把“执行(* com.xjj………)”写进这里
公共对象拦截器(ProceedingJoinPoint pjp) {
长beginTime=System.currentTimeMillis ();
MethodSignature签名=(MethodSignature) pjp.getSignature ();
方法方法=signature.getMethod ();//获取被拦截的方法
字符串methodName=method.getName ();//获取被拦截的方法名
Set