1.自定义注解
/**
* @author :yepk
* @version :1.0
* @apiNote :App日志 以及权限验证
* @date :2020-01-17-17:10
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MobileLog {
String value() default "";
/**
* @Description: token验证 true 验证token false 不验证
* @Param: []
* @return: boolean
* @Author: Lenovo
* @Date: 2020/1/19
*/
boolean tokenFlag() default true;
/**
* 是否开启忽略
* 针对条件验证token的情况 ,当传入某个参数时验证,当不传入时不验证
* 比如某个接口 登录需要验证token,未登录不需要验
* true 开启
* false 关闭
*/
boolean ignore() default false;
}
2.Controller代码
@Controller("testController")
public class TestController {
@MobileLog("测试接口")
@RequestMapping("test")
@ResponseBody
public String test(String id) {
return "test"+id;
}
}
3.拦截器的代码
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod) handler;
MobileLog mobileMethodAnnotation = handlerMethod.getMethodAnnotation(MobileLog.class);
}
}