Springboot-- 注解字段校验,并统一设置返回值

这篇具有很好参考价值的文章主要介绍了Springboot-- 注解字段校验,并统一设置返回值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Springboot-- 注解字段校验,并统一设置返回值

引包:import org.springframework.validation.annotation.Validated;文章来源地址https://www.toymoban.com/news/detail-500860.html

<!--web-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
  • 规则
@AssertFalse Boolean,boolean 验证注解的元素值是false
@AssertTrue Boolean,boolean 验证注解的元素值是true
@NotNull 任意类型 验证注解的元素值不是null
@Null 任意类型 验证注解的元素值是null
@Min(value=值) BigDecimal,BigInteger, byte,short, int, long,等任何Number或CharSequence(存储的是数字)子类型 验证注解的元素值大于等于@Min指定的value值
@Max(value=值) 和@Min要求一样 验证注解的元素值小于等于@Max指定的value值
@DecimalMin(value=值) 和@Min要求一样 验证注解的元素值大于等于@ DecimalMin指定的value值
@DecimalMax(value=值) 和@Min要求一样 验证注解的元素值小于等于@ DecimalMax指定的value值
@Digits(integer=整数位数, fraction=小数位数) 和@Min要求一样 验证注解的元素值的整数位数和小数位数上限
@Size(min=下限, max=上限) 字符串、Collection、Map、数组等 验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小
@Past java.util.Date,java.util.Calendar;Joda Time类库的日期类型 验证注解的元素值(日期类型)比当前时间早
@Future 与@Past要求一样 验证注解的元素值(日期类型)比当前时间晚
@NotBlank CharSequence子类型 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的首位空格
@Length(min=下限, max=上限) CharSequence子类型 验证注解的元素值长度在min和max区间内
@NotEmpty CharSequence子类型、Collection、Map、数组 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@Range(min=最小值, max=最大值) BigDecimal,BigInteger,CharSequence, byte, short, int, long等原子类型和包装类型 验证注解的元素值在最小值和最大值之间
@Email(regexp=正则表达式,flag=标志的模式) CharSequence子类型(如String) 验证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式
@Pattern(regexp=正则表达式,flag=标志的模式) String,任何CharSequence的子类型 验证注解的元素值与指定的正则表达式匹配
@Valid 任何非原子类型 指定递归验证关联的对象;如用户对象中有个地址对象属性,如果想在验证用户对象时一起验证地址对象的话,在地址对象上加@Valid注解即可级联验证
  • 在需要校验的bean对象属性上加上需要对应使用校验的注解
@Data
public class BirdsInfoReq {
 
    @NotBlank(message = "名称不能为空")
    private String birdName;
 
    @NotBlank(message = "分类不能为空")
    private String birdClassifyKey;
 
    @NotBlank(message = "保护等级不能为空")
    private String protectKey;
 
    @NotBlank(message = "IUCN等级不能为空")
    private String iucnKey;
    
    @Null(message = "街道必须为null")
    private String street;
 
    /**
     * 请求对象中包含有对象,需要再该对象上也加入@Valid 注解
     */
    @Valid
    private Test test;
}
  • 在定义自定义处理器,来处理报错返回
@ControllerAdvice
public class ValidationExceptionHandler extends ResponseEntityExceptionHandler {
    @Override
    protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
        return new ResponseEntity<>(R.error().message(ex.getBindingResult().getAllErrors().get(0).getDefaultMessage()),status);
    }
}
  • 在需要使用的controller上加@Validated,来启动注解校验
@RestController
@RequestMapping("keeping")
public class BookKeepingController  {
    @PostMapping("save")
    public R addSave(@RequestBody @Validated BookKeeping bookKeeping) {
      //  这样就可以快乐的玩耍了   
    }
}
  • 效果
    Springboot-- 注解字段校验,并统一设置返回值

到了这里,关于Springboot-- 注解字段校验,并统一设置返回值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【业务功能篇78】微服务-前端后端校验- 统一异常处理-JSR-303-validation注解

    5. 前端校验 我们在前端提交的表单数据,我们也是需要对提交的数据做相关的校验的 Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可 校验的页面效果 前端数据校验就搞定了。后端校验也是不可

    2024年02月11日
    浏览(103)
  • SpringBoot统一异常处理和统一返回格式

    上篇博客我们讲解了使用AOP来进行统一的用户登录判断,其实像这种功能统一且使用较多的地方,都可以用AOP来处理,除了统⼀的⽤户登录判断之外,AOP 还可以实现: 统⼀⽇志记录 统⼀⽅法执⾏时间统计 (在性能优化阶段,监控流量,接口的响应时间等甚至每个方法的响应

    2024年02月15日
    浏览(35)
  • springboot引入校验注解

    引入依赖 常用校验注解 @Null(groups={Add.class}) 参数必须为null,group设置分组,默认为default @NotNull 参数不为null @NotEmpty 参数不为null 且不为空集合,集合不为空 @NotBlank 参数不为null且不为空串,只能作用字符串类型 @AssertFalse 被注释的元素必须是false @AssertTrue 被注释的元素必须是

    2024年02月12日
    浏览(31)
  • springboot~mybatis统一处理公有字段

    对于实体中包含有公共字段,像create_at,create_time,update_at,update_time来说,我们没有必要在每个实体的crud操作中复制同样的代码,这样代码的味道很坏,我们应该使用mybatis的拦截器机制,将公共字段统一处理;当然mybatis-puls在实现上更加优雅,它帮我们封装了 MetaObjectHandler 接口

    2024年04月08日
    浏览(42)
  • springboot全局统一返回处理

    项目中一般都会有规定好的接口返回格式,无论成功与失败,一般格式都是不变的,这样是为了方便前后端统一处理,今天就来说下前后端统一处理的较为优雅的方式; 一般而言都会有一个统一的返回类作为接口的返回数据的封装,例如: 然后我们通过此类作为返回参数的统一封装

    2024年02月13日
    浏览(38)
  • 7.6 SpringBoot AOP实战 统一角色权限校验

    通过上文7.5 SpringBoot 拦截器Interceptor实战 统一角色权限校验,很多朋友学会了Interceptor实现以后,很想学习如何使用AOP实现 统一角色权限校验,所以本文就来安排AOP的实现! 对于SpringBoot的AOP的相关基础知识,请参考我之前写过的博客,也是上过综合热榜第一的文章,本文的

    2024年02月16日
    浏览(34)
  • Springboot 中设置统一的返回格式

    在我们应用中我们通常与前端交互使用json 格式,设置统一的返回json 格式是非常必要的,可以减少开发人员的工作量。 第一个使用统一的消息转换器,这里使用jackson 的相关功能,引入jar 创建一个全局配置类(GlobalConfig)并使用 @Configuration 注解标记该类为配置类。然后,在

    2024年01月25日
    浏览(35)
  • springboot统一拦截包装接口返回值

    1、作用 代替手动封装每个接口的返回值,否则每个有返回值的controller接口,都需要手动使用Resonse类包装返回结果 2、实现 方法返回值handler,需要实现接口HandlerMethodReturnValueHandler,并重写supportsReturnType和handleReturnValue方法。只有在supportsReturnType方法返回值为true的情况下才会

    2024年02月13日
    浏览(56)
  • 在前后端分离项目中如何设置统一返回格式

    目录 一、步骤一 二、步骤二 在前后端分离的项目中,为了方便前后端交互,后端往往需要给前端返回固定的数据格式,但不同的实体类返回格式不同,所以在真实开发中,我们将所有API接口设置返回统一的格式。基本上包括的有状态码,提示信息和数据等等。下面是基本的

    2024年02月22日
    浏览(42)
  • SpringBoot2.0(Lombok,SpringBoot统一返回封装)

    ​ java工程中,我们要创建很多的java Bean。这些javaBean中都会写getter,setter,equals,hashCode和toString的模板代码,这些代码都没啥技术含量。 ​ 那么我们就是使用Lombok来自动生成这些代码,通过注解的方式。提高我们的工作效率。 ​ Lombok的原理:JSR 269插件化注解处理。就是在

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包