栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring开发参数效验

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring开发参数效验

配置与依赖

依赖


    org.hibernate
    hibernate-validator
    6.0.1.Final


切片效验

@RestControllerAdvice
public class CommonExceptionHandler {

    @ExceptionHandler({MethodArgumentNotValidException.class})
    @ResponseStatus(HttpStatus.OK)
    @ResponseBody
    public Result handleMethodArgumentNotValidException(MethodArgumentNotValidException ex) {
        BindingResult bindingResult = ex.getBindingResult();
        StringBuilder sb = new StringBuilder("校验失败:");
        for (FieldError fieldError : bindingResult.getFieldErrors()) {
            sb.append(fieldError.getField()).append(":").append(fieldError.getDefaultMessage()).append(", ");
        }
        String msg = sb.toString();
       return Result.fail(BusinessCode.参数校验失败, msg);
    }

    @ExceptionHandler({ConstraintViolationException.class})
    @ResponseStatus(HttpStatus.OK)
    @ResponseBody
    public Result handleConstraintViolationException(ConstraintViolationException ex) {
        return Result.fail(BusinessCode.参数校验失败, ex.getMessage());
    }
}

@Valid和@Validated区别 底层都是 Hibernate Validator
区别@Valid@Validated
提供者JSR-303规范Spring
是否支持分组不支持支持
标注位置METHOD, FIELD, CONSTRUCTOR, PARAMETER, TYPE_USETYPE, METHOD, PARAMETER
嵌套校验支持不支持
快速失败(Fail Fast)
@Bean
public Validator validator() {
    ValidatorFactory validatorFactory = Validation.byProvider(Hibernatevalidator.class)
            .configure()
            // 快速失败模式
            .failFast(true)
            .buildValidatorFactory();
    return validatorFactory.getValidator();
}

常用注解
@Length(min = 2, max = 20, message = "姓名在2-10个字母之间")
@NotEmpty
private String name;

@Pattern(regexp = "1[0-9]{10}", message = "请输入正确的手机号")
private String phone;

@Range(min = 0, max = 120, message = "年龄在0到120之间")
private Integer age;

@NotEmpty  //字符串、集合、数组	字符串不能为空,集合数组里面的元素个数不能为0
@Size(min =,max = )	//字符串、集合、数组	校验对象的值在min和max区间内,如字符长度、集合大小


注意

@RequestBody 会变成Post 请求windows 主机不区分大小写 linux 不区分url 可以 - _只能加在方法上的参数上 可接口类上 加载对象上面不生效 草稿

网址 http://www.chenggongla.com/studio/ 和 http://www.chenggongla.com/Studio/ 是不一样的,后者有一个大写字母,会无法访问。那么网址链接是否区分大小写呢?

URL的结构是:[协议]/[域名]/[路径]

协议和域名部分是不区分大小写的,但是路径部分则根据服务器平台而定。Windows 和 Mac OS X 系统是不区分大小写的,而采用UNIX和Linux系的服务器系统是区分大小写的,请大家要注意。

参考文章

https://juejin.cn/post/6856541106626363399#heading-14
官方文档

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776157.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号