【自定义方法级别的注解,在接口上使用,mark一下】

自定义方法级别的注解,在接口上使用,配合拦截器,可以在指定接口上添加自定义注解类,在拦截器中获取自定义注解对象,来控制是否继续执行逻辑。(当然这里:只用拦截器也完全可以实现,这里只是mark一下这种方式)
  1. 自定义注解类
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FilterPoint {
    String value() default "";
    String status() default "1";
}
  1. 接口层添加自定义注解
	@RequestMapping("/register")
    @ApiOperation(value = "参数校验v2.0", notes = "注册校验", httpMethod = "GET", response = Map.class)
    @ApiImplicitParams({//swagger api说明(前端联调)
            @ApiImplicitParam(name = "name", value = "用户名"),
            @ApiImplicitParam(name = "mobile", value = "手机号"),
            @ApiImplicitParam(name = "verifyCode", value = "验证码"),
    })
    @FilterPoint(value = "注册参数校验")
    public String register() throws NewHouseException {
    //todo
    }
  1. 拦截器中获取自定义的注解对象
public class FilterPointInterceptor extends HandlerInterceptorAdapter {

	//可以注入由spring管理的对象
    @Resource
    private ConfigService configService;
    final String isFilter = "IS_FILTER";

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        WordFilterPoint annotation = null;
        // 检查请求的handler中是否有FilterPoint注解
        if(handler instanceof HandlerMethod) {
            annotation = ((HandlerMethod) handler).getMethodAnnotation(FilterPoint.class);
        }
        String flag = configService.get(isFilter);
        if (annotation != null && "Y".equalsIgnoreCase(flag)) {
            //todo 
        }

        return true;
    }
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
		//todo 
    }

	@Override
    public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    	//todo 
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值