首页 > 其他分享 >Spring Boot - 引入 validation 对参数或实体类进行校验不管用

Spring Boot - 引入 validation 对参数或实体类进行校验不管用

时间:2023-08-29 13:33:36浏览次数:26  
标签:实体类 String RequestParam Spring Boot lit login Validated email

版本说明

我的父工程版本号是 3.1.0。

file:[pom.xml]
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.0</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

这是 validation 的依赖:

file:[pom.xml - dependencies]
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

@Validated

如果没有在需要校验的地方通过注解 @Validated 开启校验功能,也不会生效。

lit:[@Validated]:lit
@RestController("/api/auth")
public class AuthController {

}

参数

@GetMapping("/aks-mail-verify-code")
lit:[public Vo askMailVerifyCode(@Validated @RequestParam @Email(message = "不是一个合法的电子邮箱地址") String email,
                            @Validated @RequestParam @Pattern(regexp = "(register|login|reset)", message = "发送验证码的类型是 register 或 login 或 reset") String type,]:lit
                            HttpServletRequest http) {
    return mailRelatedService.getMailVerifyCode(email, type, HttpUtil.getIpAddr(http));
}

函数

lit:[@Validated]:lit
@GetMapping("/aks-mail-verify-code")
public Vo askMailVerifyCode(@RequestParam @Email(message = "不是一个合法的电子邮箱地址") String email,
                            @RequestParam @Pattern(regexp = "(register|login|reset)", message = "发送验证码的类型是 register 或 login 或 reset") String type,
                            HttpServletRequest http) {
    return mailRelatedService.getMailVerifyCode(email, type, HttpUtil.getIpAddr(http));
}

热加载的锅

如果你的 Idea 开启了热加载,引入包之后,需要重新编译再运行,也就是重启服务(不是重启 Idea 本身)。

编译并运行按钮

标签:实体类,String,RequestParam,Spring,Boot,lit,login,Validated,email
From: https://www.cnblogs.com/Himmelbleu/p/17664502.html

相关文章

  • spring boot WebSocket @ServerEndpoint注解标识的class无法获取spring容器中的bean
    在@ServerEndpoint类中直接使用@Autowired注解注入Spring管理的bean可能不会成功,因为@ServerEndpoint并不受Spring容器的管理。通过创建一个静态的成员遍历属性和一个带有@Autowired注解的setter方法,你可以在类加载时将bean注入到静态属性中。但是,请注意这样做......
  • Spring JdbcTemplate
    什么是JdbcTemplate大家来回顾一下,java中操作db最原始的方式就是纯jdbc了,是不是每次操作db都需要加载数据库驱动、获取连接、获取PreparedStatement、执行sql、关闭PreparedStatement、关闭连接等等,操作还是比较繁琐的。spring中提供了一个模块,对jdbc操作进行了封装,使其更简单,......
  • 架构之选:评价Spring Cloud在微服务完整性方面的独到观点!
    大家好,我是小米!今天我们要来聊一个非常热门的话题:SpringCloud在微服务架构方面的完整度情况。随着技术的不断演进,微服务架构已经成为了众多企业构建灵活、可扩展系统的首选。而SpringCloud作为微服务架构的佼佼者,自然成为了我们必须深入了解的对象。废话不多说,咱们开始吧!前言:微服......
  • 基于SpringBoot的装饰工程管理系统
    如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统装饰工程项目信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个装饰工程管理系统项目立......
  • Spring Boot 别再用 Date 作为入参了,LocalDateTime、LocalDate 真香!
    作者:TinyThing链接:https://www.jianshu.com/p/b52db905f0200x0背景项目中使用LocalDateTime系列作为dto中时间的类型,但是spring收到参数后总报错,为了全局配置时间类型转换,尝试了如下3中方法。注:本文基于Springboot2.0测试,如果无法生效可能是spring版本较低导致的。PS:如果你......
  • 聊聊spring项目中如何动态刷新bean
    前言前阵子和朋友聊天,他手头上有个spring单体项目,每次数据库配置变更,他都要重启项目,让配置生效。他就想说有没有什么办法,不重启项目,又可以让配置生效。当时我就跟他说,可以用配置中心,他的意思是因为是维护类项目,不想再额外引入一个配置中心,增加运维成本。后边跟他讨论了一个方案,可......
  • SpringBoot内置Tomcat的参数值
    SpringBoot内置Tomcat,在默认设置中,Tomcat的最大线程数是200,最大连接数是10000。默认情况下,支持最大并发量为一万,也就是指支持的连接数。Tomcat有两种处理连接的模式是BIO,一个线程只处理一个Socket连接是NIO,一个线程处理多个Socket连接处理多个连接的单个线程通常不会引起太......
  • Springboot——后端的一些配置(大部分都用得到)
    <repositories><repository><id>nexus-aliyun</id><name>nexus-aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><rele......
  • day127-springMVC的介绍与入门
    springMVC介绍与初始化介绍MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,如Student、User等一类称为业务处理Bean:指Service或Dao对象,专门用于处理......
  • SpringBoot - 原理
    目录配置文件优先级配置文件优先级虽然springboot支持多种格式配置文件,但是在项目开发时,推荐统一使用一种格式的配置(yml是主流)IDEA配置系统属性和命令行参数:命令行参数>系统属性总体优先级:命令行参数优先级>系统属性>application.properties>application.y......