package com.zql.pojo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.Email;
/**
* @Author:Daniel
* @Version 1.0
*/
@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {
@Email(message = "邮箱格式错误!!")
private String name;
private Integer age;
public Person() {
}
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
JSR303数据校验springboot-01-config.zip
需积分: 0 117 浏览量
更新于2022-09-14
收藏 53KB ZIP 举报
JSR303数据校验是Java世界中用于验证数据的有效性和一致性的一种规范,它为开发者提供了一套标准的API来实现对象级别的业务规则检查。这个"springboot-01-config.zip"压缩包文件可能包含了关于如何在Spring Boot项目中集成和配置JSR303数据校验的示例代码和配置文件。Spring Boot是一个流行的Java框架,简化了Spring应用的初始搭建以及开发过程,而JSR303的集成则进一步增强了其数据处理的安全性和准确性。
在Spring Boot项目中,JSR303(也称为Bean Validation)通常通过Hibernate Validator实现,这是JSR303的一个具体实现,提供了丰富的校验注解和强大的自定义校验功能。下面将详细讲解JSR303在Spring Boot中的使用和配置。
1. **引入依赖**:你需要在项目的`pom.xml`或`build.gradle`文件中添加Hibernate Validator的依赖。例如,在Maven项目中,可以添加如下依赖:
```xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
```
2. **校验注解**:JSR303提供了多种预定义的校验注解,如`@NotNull`、`@Size`、`@Min`、`@Max`等,可以直接在bean的属性上使用,来声明数据的约束条件。例如,一个用户实体类可能会有如下定义:
```java
public class User {
@NotNull(message = "用户名不能为空")
private String username;
@Size(min = 6, max = 16, message = "密码长度必须在6到16之间")
private String password;
}
```
3. **启用自动校验**:Spring Boot默认集成了Bean Validation,但需要在配置中开启自动校验。在`application.properties`或`application.yml`文件中添加如下配置:
```properties
spring.validation.enabled=true
```
4. **校验控制器方法**:在Spring MVC的控制器方法参数中,可以使用`@Validated`注解来触发校验,例如:
```java
@PostMapping("/users")
public ResponseEntity<?> createUser(@Validated User user) {
// 如果校验失败,Spring会自动返回400 Bad Request响应
userService.createUser(user);
return ResponseEntity.ok().build();
}
```
5. **自定义校验器**:如果预定义的注解不能满足需求,你可以创建自定义校验器。定义一个实现了`ConstraintValidator`接口的类,并使用`@Constraint`注解来声明新的校验注解。
6. **全局异常处理**:为了统一处理校验失败时的异常,可以在Spring Boot中配置全局的异常处理器,捕获`MethodArgumentNotValidException`并返回定制的错误信息。
7. **国际化支持**:JSR303允许你通过资源文件来实现错误消息的国际化,这样不同语言的用户可以看到本地化的错误提示。
8. **分组校验**:通过定义校验分组,可以对不同的业务场景使用不同的校验规则。例如,注册和修改用户信息时,对密码的要求可能不同。
9. **校验结果的获取**:可以使用`BindingResult`或`Errors`对象来获取校验结果,以便进行进一步的处理。
在这个"springboot-01-config"项目中,你可能还会看到如何在实际场景中使用这些技术,包括如何配置自定义校验器、如何进行分组校验、如何与Spring Data JPA结合进行数据库级别的校验等。通过分析和学习这个项目,你可以更深入地理解JSR303在Spring Boot中的实际应用。
Daniel521-Spark
- 粉丝: 2730
- 资源: 142
最新资源
- 基于二阶自抗扰ADRC的轨迹跟踪控制,对车辆的不确定性和外界干扰具有一定抗干扰性,基于carsim和simulink仿真 跟踪轨迹为双移线,效果良好,有对应复现资料,是学习自抗扰技术快速入门很好的资料
- 基于python的网页自动化工具项目全套技术资料100%好用.zip
- MATLAB【逆变器二次调频模型】 微电网分布式电源逆变器DROOP控制二次调频模型,加入二次控制实现二次调频控制,及二次调压控制,程序可实现上图功能,工况有所改变 需要matlab2021A版
- 抢购软件:快速复制信息
- 单机无穷大系统发生各类(三相短路,单相接地,两相接地,两相相间短路)等短路故障,各类(单相断线,两相断线,三相断线)等断线故障,暂态稳定仿真分析
- 微信文章爬虫项目全套技术资料100%好用.zip
- 基于动态窗口算法的AGV仿真避障 可设置起点目标点,设置地图,设置移动障碍物起始点目标点,未知静态障碍物 动态窗口方法(DynamicWindowApproach) 是一种可以实现实时避障的局部规划算
- Power Quality Disturbance:基于MATLAB Simulink的各种电能质量扰动仿真模型,包括配电线路故障、感应电机启动、变压器励磁、单相 三相非线性负载等模型,可用于模拟各种
- 数据爬虫项目全套技术资料100%好用.zip
- 聊天系统项目全套技术资料100%好用.zip