首页 > 其他分享 >Spring Validated 校验

Spring Validated 校验

时间:2023-12-28 23:33:54浏览次数:30  
标签:框架 Spring 303 校验 注解 Validated


Spring的校验框架是通过@Validated注解和JSR 303(Bean Validation)规范实现的。它提供了一种方便的方式来验证方法参数和对象属性的有效性。

下面是使用Spring校验框架的几个关键概念和用法:

  1. 注解@Validated@Validated注解用于标记需要进行校验的类或方法。它可以放在类级别,在方法参数上或者方法返回值上进行标记。
  2. 注解@Valid@Valid注解是JSR 303规范中的注解,在Spring校验框架中用于表示需要对该对象进行校验。
  3. 校验器:校验器是遵循JSR 303规范的类,用于验证对象的有效性。可以使用自定义校验器或者使用内置的一些校验器,比如javax.validation.constraints包中的注解。
  4. 错误结果处理:校验框架通过ErrorsBindingResult接口来处理校验结果。它们可以在校验失败时捕获并处理校验错误。

下面是一个使用Spring校验框架的示例:

import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.Min;

@Component
@Validated
public class UserService {
    public void createUser(@Min(value = 18, message = "年龄不能小于18岁") int age) {
        // 在这里编写创建用户的逻辑
    }
}

在上面的示例中,UserService类上使用了@Validated注解,表示该类需要进行校验。在createUser方法的age参数上添加了@Min注解,规定age的最小值为18。当调用createUser方法时,如果age的值小于18,会抛出MethodArgumentNotValidException异常,可以在异常处理器中对其进行处理。

有几点需要注意:

  • Spring校验框架需要在classpath中添加Bean Validation的依赖,如Hibernate Validator。
  • Spring校验框架仅用于校验方法参数和Bean对象属性,不会自动校验方法返回值。
  • 可以通过添加@Validated注解指定校验分组,实现更精细的校验。

通过使用Spring的校验框架,我们可以方便地对方法参数和对象属性进行校验,提高代码的可靠性和安全性。详细了解JSR 303规范和Spring校验框架的使用方式,可以参考Spring官方文档或其他相关资料。

标签:框架,Spring,303,校验,注解,Validated
From: https://blog.51cto.com/u_15655475/9019203

相关文章

  • Java Spring Boot Mybatis-Plus 的简单使用
    此文主要基于官网case整理,如需了解更多详情,请移步官网。环境:SpringBoot:3.1.6JDK:17MySQL:5.7数据准备主要是MySQL建库建表,插入一些数据。建库:CREATEDATABASEmybatis_demo;建表:DROPTABLEIFEXISTS`user`;CREATETABLE`user`(idBIGINTNOTNULLCOMME......
  • Spring BeanFactoryAware 解决 prototype 作用域失效问题
    跟着孙哥学Spring,b站:https://www.bilibili.com/video/BV185411477k/?spm_id_from=333.337.search-card.all.click在Spring中,如果一个singletonbean依赖了一个prototypebean,那么这个prototypebean在初始化时只会被创建一次,这就是所谓的"prototypescope失效"的问题......
  • RocketMQ系统性学习-SpringCloud Alibaba集成RocketMQ以及消费收发实战
    欢迎关注公众号:【11来了】发送“资料”可以下载Redis、JVM系列文章PDF版本!作者为在读研究生,目前研二,计划在公众号记录学习常用中间件笔记,以及明年更新面试经历!SpringCloudAlibaba集成RocketMQ最佳实践SpringBoot相对于SSM来说已经很大程度上简化了开发,但是使用SpringBo......
  • Maven插件系列之spring-boot-maven-plugin
    SpringBoot的Maven插件(SpringBootMavenplugin)能够以Maven的方式为应用提供SpringBoot的支持,即为SpringBoot应用提供了执行Maven操作的可能。SpringBootMavenplugin能够将SpringBoot应用打包为可执行的jar或war文件,然后以通常的方式运行SpringBoot应用。SpringBootMave......
  • springcloud动力节点-01Eureka
    SpringCloudEureka1.SpringCloudEureka简介注册发现中心Eureka来源于古希腊词汇,意为“发现了”。在软件领域,Eureka是Netflix在线影片公司开源的一个服务注册与发现的组件,和其他Netflix公司的服务组件(例如负载均衡、熔断器、网关等)一起,被SpringCloud社区整合......
  • springcloud动力节点-05Sleuth
    SpringCloudSleuth1.什么是链路追踪官网:https://spring.io/projects/spring-cloud-sleuth链路追踪就是:追踪微服务的调用路径2.链路追踪的由来在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个请求都会开成一......
  • springcloud动力节点-04Hystrix
    SpringCloudHystrix1.前言1.1什么是服务雪崩   服务雪崩的本质:线程没有及时回收。不管是调用成功还是失败,只要线程可以及时回收,就可以解决服务雪崩1.2服务雪崩怎么解决1.2.1修改调用的超时时长(不推荐)将服务间的调用超时时长改小,这样就可以让线程及时回收,保证服......
  • springcloud动力节点-03OpenFeign
    SpringCloudOpenFeign 1.说在前面上一节我们讲到Ribbon做了负载均衡,用Eureka-Client来做服务发现,通过RestTemplate来完成服务调用,但是这都不是我们的终极方案,终极方案是使用OpenFeign2.OpenFeign简介https://docs.spring.io/spring-cloud-open......
  • Spring Cloud动力节点-07Alibaba简介、注册、配置中心
    1.项目简介SpringCloudAlibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过SpringCloud编程模型轻松使用这些组件来开发分布式应用服务。依托SpringCloudAlibaba,您只需要添加一些注解和少量配置,就可以将SpringClo......
  • springcloud动力节点-06Admin监控 Or Gateway网关
    SpringCloudAdmin 监控端点新建工程:admin-serverpom中springcloud版本号和版本控制要添加<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan......