自定义注解拦截器对整个Controller拦截

 通过自定义注解拦截,一般注解都在方法上标注。有时候,整个Controller都需要拦截,一个个加觉得怪麻烦的。那么我们声明注解时可以让注解作用在类上。

@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface IpCheck {
    String type() default "WHITE_LIST";
}

在拦截器获取注解时,可优先从方法提取,提取不到再从类上提取

 

protected <A extends Annotation> A getAnnotation(Object handler, Class<A> annotationType) {
        if (!(handler instanceof HandlerMethod)) {
            return null;
        }
        HandlerMethod handlerMethod = ((HandlerMethod) handler);
        A a = handlerMethod.getMethodAnnotation(annotationType);
        if (a == null) {
            //判断类是否有注解
            a = handlerMethod.getBeanType().getAnnotation(annotationType);
        }
        return a;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值