Spring Boot 的 JSR数据校验以及Controller全局异常处理器

一.JSR数据校验

1.JSR数据校验的介绍

JSR的全称是Java Specification Requests(Java 规范提案),是指向JCP ( Java Community Process )提出新增一个标准化技术规范的正式请求。

Java API 规范( JSR303 )定义了 Bean 校验的标准 validation-api ,但没有提供实现。 hibernate validation 是对这个规范的实现,并增加了校验注解如 @Email 、 @Length 等。 Spring Validation 是对 hibernate validation 的二次封装,用于支持 spring mvc 参数自动校验。

2.JSR数据校验的使用

(1)在pom.xml 文件里导入坐标

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

(2)在实体类中需要进行校验的成员属性上加注解

@Component
public class Dog {
    @NotNull(message = "数据不能为空")
    private String name;
    @Max(value = 15,message = "年龄超过限制")
    private int age;

(3)在控制器方法中参数前加注解

@RequestMapping(path = "/dog")
@ResponseBody
public String dog(@Valid Dog dog){
    return "哥们我天下第一帅";
}

Spring Boot 中JSR数据校验的注解分类以及使用具体请查看下这篇博客

SpirngBoot 中JSR数据校验 的注解分类与如何使用

二.Controller统一异常处理(全局异常处理器)

此行为是为了更方便的处理同一个Controller中,任意接口里出现的我们定义的异常进行统一捕获并可以按照我们自己的想法对该异常进行处理和操作

@ControllerAdvice
public class BindAllException {

    @ExceptionHandler(BindException.class)
    @ResponseBody
    public  String hindException(){
            return "不好意思帅到你了";
    }
}

@ControllerAdvice:统一为Controller进行"增强"

@ExceptionHandler : 异常处理(意思为对任意Controller的任意位置报改类型的错误都进行捕获并且用该注解下的方法进行处理)

此代码意为对Controller中出现的名为BindException的异常进行捕捉并在捕捉后执行我们自己定义的方法体中的代码

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值