aop配合自定义的注解使用,静态类获取request
Posted 好大的月亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aop配合自定义的注解使用,静态类获取request相关的知识,希望对你有一定的参考价值。
先创建一个注解
package com.fchan.hashmapstudy.aspect;
public @interface CheckIng {
}
aop
配置类
在需要aop
切入的方法中加上这个注解就可以了
package com.fchan.hashmapstudy.aspect;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
@Aspect
@Component
public class CheckIngAspect {
//注解的包名全路径
@Around("@annotation(com.fchan.hashmapstudy.aspect.CheckIng)")
public Object checkIng(ProceedingJoinPoint point) throws Throwable {
//通过 RequestContextHolder 获取 HttpServletRequest
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
HttpServletRequest httpServletRequest = servletRequestAttributes.getRequest();
//从header中获取token
String token = httpServletRequest.getHeader("x-toekn");
//校验toekn,如果校验成功就执行方法,否则就抛异常出去,这里只是为了说明aop配合注解使用,就不多写了
return point.proceed();
}
}
以上是关于aop配合自定义的注解使用,静态类获取request的主要内容,如果未能解决你的问题,请参考以下文章