spring-web加javax.validation实现统一验证处理

直接看代码比较易懂

这是一个web接口,注意注解的写法

	@GetMapping("/listByIds")
    @Validated // import org.springframework.validation.annotation.Validated;
    private ServiceR listByIds(@RequestParam @NotNull Long[] ids) { // import javax.validation.constraints.NotNull;
    ... ...
    }

当参数ids为null时,将被拒绝服务。

写一个类拦截异常

@RestControllerAdvice
public class BaseController {
	@ExceptionHandler({Exception.class})
    public Response handleException(Exception e) {
        return Response.error(e.getMessage());
    }
}

当访问异常时,将统一由此返回信息给调用方。Rest json化。如不传参调用接口时↓
spring-web加javax.validation实现统一验证处理_第1张图片
因为ids不存在

或者抛出RuntimeException时,将被拦截到,从而进行一些处理。

	if(参数不合法) throw new RuntimeException("参数长度不能为0!");

总而言之,简化代码,使代码变得优雅。

你可能感兴趣的:(巧技)