首页 > 其他分享 >SpringBoot使用Validation框架手动校验对象是否符合规则

SpringBoot使用Validation框架手动校验对象是否符合规则

时间:2024-02-06 15:46:14浏览次数:27  
标签:validation SpringBoot violation 校验 import violations Validation javax

 

 

在springboot项目中引入

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

 

伪代码

import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;


@Data
@Accessors(chain = true)
public class DemoEntity {

    private Long id;

    @NotNull
    private String name;
}

 

使用

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import java.util.Set;


public class Test4 {

    public static void main(String[] args) {
        DemoEntity entity = new DemoEntity();
        entity.setId(1L);


        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        Validator validator = factory.getValidator();

        // 手动校验对象
        Set<ConstraintViolation<DemoEntity>> violations = validator.validate(entity);
        if (violations.isEmpty()) {
            System.out.println("对象值匹配");
        } else {
            for (ConstraintViolation<DemoEntity> violation : violations) {
                System.out.println(violation.getPropertyPath() + ": " + violation.getMessage());
            }
        }
    }
}

 

标签:validation,SpringBoot,violation,校验,import,violations,Validation,javax
From: https://www.cnblogs.com/pxblog/p/18009822

相关文章

  • springboot集成easypoi导出多sheet页
    pom文件<dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>4.1.0</version></dependency>导出模板:编辑后端代码示例:/***导出加油卡进便利店大额审批列表*@throwsIOException......
  • SpringBoot的maven插件生成可以直接启动的jar
    简单使用<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration&g......
  • springboot整合redis的哨兵模式
    在SpringBoot中整合Redis的哨兵模式涉及到配置SpringBoot应用程序以连接到Redis哨兵集群。哨兵模式是Redis的一种高可用解决方案,它提供了自动故障转移功能,可以在Redis主节点发生故障时自动将一个从节点升级为新的主节点。步骤1:安装并配置Redis哨兵集群首先,您需要在您的服务器上......
  • Springboot在编写CRUD时,访问对应数据函数返回null
    1.我遇到了什么问题我在学习springboot,其中在编写CRUD时发现访问数据的函数执行下去返回值是null但是其它部分正常。下面是我的错误代码pojopublicclassBot{@TableId(type=IdType.AUTO)privateIntegerid;privateIntegeruser_id;privateStr......
  • Springboot整合redis配置详解
    Springboot整合redis配置详解1.导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2.编写properties或者yml配置#Redis本地服务器地址,注意要开启redis服务,即那个redis-s......
  • SpringBoot可以同时处理多少请求?
    正文我们都知道,SpringBoot默认的内嵌容器是Tomcat,也就是我们的程序实际上是运行在Tomcat里的。所以与其说SpringBoot可以处理多少请求,到不如说Tomcat可以处理多少请求。关于Tomcat的默认配置,都在spring-configuration-metadata.json文件中,对应的配置类则是org.springframework.b......
  • spring-boot-maven-plugin maven-compiler-plugin springboot demo
     <build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-......
  • modbus crc16校验
    //计算crc16位校验,如计算结果是0x5566,则高字节是55,低字节是66,需要根据情况交换高低字节quint16checkCrc16(quint8*ptr,intlen){unsignedinti;quint16crc=0xFFFF;while(len--){crc^=*ptr++;for(i=0;i<8;++i)......
  • springboot之ImportBeanDefinitionRegistrar动态注入
    SpringBoot中的使用在SpringBoot内置容器的相关自动配置中有一个ServletWebServerFactoryAutoConfiguration类。该类的部分代码如下:@Configuration(proxyBeanMethods=false)@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)@ConditionalOnClass(ServletRequest.class)@Con......
  • SpringBoot- 文件上传
    packagecom.example.demo.controller;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RestController;importorg.springframework.web.multipart.MultipartFile;importjavax.servlet.http.HttpServlet......