如何解决 SpringBoot 校验 (Validation) 不起作用的问题

我在控制器 (Controller) 的方法上加上了 @Valid 属性但是传入无效的数据后,SpringBoot 根本就没有校验数据。经查询原因是在 SpringBoot 2.3.0 以后,我们需要给 pom.xml 加入下面的依赖项,SpringBoot 校验属性 @Valid 才会起作用。

<dependency>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-starter-validationartifactId>
dependency>

以下是参考代码:

我们要求Person.Name属性不能为空。

package com.example.demo.model;

import javax.validation.constraints.NotBlank;
import java.util.UUID;

public class Person {
     

    @NotBlank
    private String name;

    private UUID id;

    public Person(UUID id, String name) {
     
        this.name = name;
        this.id = id;
    }

    public String getName() {
     
        return name;
    }

    public UUID getId() {
     
        return id;
    }
}

以下是加了 @Valid 属性的 Controller的方法:

    @PostMapping
    public UUID addPerson(@Valid @NotNull @RequestBody Person person)
    {
     
        return this.personService.AddPerson(person);
    }

下面是完整的参考代码:
spring-boot-tutorial

你可能感兴趣的:(Java,java,spring)