使用拦截器获取Controller方法名和注解信息

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);        
        }

}
# java  

评论

企鹅群:39438021

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×