一.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的异常进行捕捉并在捕捉后执行我们自己定义的方法体中的代码