【问题标题】:Validate Bean in Spring boot在 Spring Boot 中验证 Bean
【发布时间】:2020-12-21 08:29:30
【问题描述】:

spring boot 中有没有办法验证 bean 中的属性?例如,考虑一个由以下属性组成的 Employee Bean -

  1. id - 必须以 01,02,22 开头
  2. 部门 - 应该是任何一个 - D1、D2、D3
  3. 名称 - 不得包含任何数字且最大长度为 10 个字符。

我可以有一个单独的方法并每次都验证 bean,但我正在寻找一些更好的方法来使用 spring boot 来实现它。

【问题讨论】:

标签: spring spring-boot spring-mvc spring-data-jpa spring-data


【解决方案1】:

您可以使用 Spring Boot 验证来验证您的模式。 将此依赖项添加到您的 gradle 文件 implementation('org.springframework.boot:spring-boot-starter-validation') https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation checkout the latest version

class Employee {

  @Pattern(regexp = "^(01|02|22).+$")
  private String id;

  @Size(max = 10)
  @Pattern(regexp = "^[^0-9]+$")
  private String name;

  @Pattern(regexp = "^D[1-3]$")
  private String department;
  
}

在你的要求中

@RestController
class EmployeeRequest {

  @PostMapping("/registerEmployee")
  ResponseEntity<String> registerEmployee(@Valid @RequestBody Employee employee) {
    return ResponseEntity.ok("valid");
  }
}

注意:我不确定正则表达式的语法,但您应该根据业务需求定义正则表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多