Kotlin + Spring Boot 请求参数验证的代码实例

编写 Web 应用程序的时候,经常要做的事就是要对前端传回的数据进行简单的验证,比如是否非空、字符长度是否满足要求,邮箱格式是否正确等等。在 Spring Boot 中,可以使用 Bean Validation (JSR-303) 技术通过注解的方式来进行参数验证。

准备 DTO 对象

data class UserRegisterModel(
    @get: NotEmpty(message = "User name is required")
    @get: Size(message = "Length of user name must be between 6 and 20", min = 6, max = 20)
    var username: String,

    @get: NotEmpty(message = "Password is required")
    var password: String,

    @get: NotEmpty(message = "Email is required")
    @get: Email
    var email: String)

这里定义了一个十分常见的 DTO 对象,用来承载用户注册时的数据,可能你已经注意到了一些奇怪的地方,在一些注解的前面多了get:这样的东西,是因为 kotlin 会直接在字节码中生成 getter 跟 setter,这样写是显式的是表明这个注解应该作用在getter上。

准备一个 Controller

/**
 * 用户注册接口
 */
@PostMapping
fun register(@Valid @RequestBody model: UserRegisterModel): Any {
  val user = User(userName = model.username, password = model.password, email = model.email)
  userRepo.save(user)
  return user
}

只需要在需要验证的参数前加上 @Valid 注解,Spring 就会自动的验证参数的正确性。

来个测试

把用户名空着

参数完整且正确

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Spring Boot中整合Spring Security并自定义验证代码实例

    最终效果 1.实现页面访问权限限制 2.用户角色区分,并按照角色区分页面权限 3.实现在数据库中存储用户信息以及角色信息 4.自定义验证代码 效果如下: 1.免验证页面 2.登陆页面 在用户未登录时,访问任意有权限要求的页面都会自动跳转到登陆页面. 3.需登陆才能查看的页面 用户登陆后,可以正常访问页面资源,同时可以正确显示用户登录名: 4.用户有角色区分,可以指定部分页面只允许有相应用户角色的人使用 4.1.只有ADMIN觉得用户才能查看的页面(权限不足) 4.2.只有ADMIN觉得用户才能查

  • 登陆验证码kaptcha结合spring boot的用法详解

    前言 在我们用户登录的时候,为了安全性考虑,会增加验证码的功能,这里采用的是google的kaptcha:spirngboot是轻便,独立,使得基于spring的应用开发变得特别简单.网上有很多介绍springboot的介绍,这里不多说. 言归正抓,讲下登陆时验证码结合springboot的用法 引入kaptcha所需要的jar包,我这里用的是maven <dependency> <groupId>com.github.penggle</groupId> <art

  • springboot实现拦截器之验证登录示例

    整理文档,搜刮出一个springboot实现拦截器之验证登录示例,稍微整理精简一下做下分享. 添加jar包,这个jar包不是必须的,只是在拦截器里用到了,如果不用的话,完全可以不引入 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.5</version> </dep

  • Spring Boot 验证码的生成和验证详解

    前言 本文介绍的imagecode方法是一个生成图形验证码的请求,checkcode方法实现了对这个图形验证码的验证.从验证码的生成到验证的过程中,验证码是通过Session来保存的,并且设定一个验证码的最长有效时间为5分钟.验证码的生成规则是从0~9的数字中,随机产生一个4位数,并增加一些干扰元素,最终组合成为一个图形输出 1.验证码生成类 import java.awt.*; import java.awt.image.BufferedImage; import java.io.Output

  • Kotlin + Spring Boot 请求参数验证的代码实例

    编写 Web 应用程序的时候,经常要做的事就是要对前端传回的数据进行简单的验证,比如是否非空.字符长度是否满足要求,邮箱格式是否正确等等.在 Spring Boot 中,可以使用 Bean Validation (JSR-303) 技术通过注解的方式来进行参数验证. 准备 DTO 对象 data class UserRegisterModel( @get: NotEmpty(message = "User name is required") @get: Size(message =

  • Spring boot进行参数校验的方法实例详解

    Spring boot开发web项目有时候我们需要对controller层传过来的参数进行一些基本的校验,比如非空.整数值的范围.字符串的长度.日期.邮箱等等.Spring支持JSR-303 Bean Validation API,可以方便的进行校验. 使用注解进行校验 先定义一个form的封装对象 class RequestForm { @Size(min = 1, max = 5) private String name; public String getName() { return n

  • spring boot多数据源动态切换代码实例

    这篇文章主要介绍了spring boot多数据源动态切换代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 当项目中存在多数据源时,就涉及到数据源的动态切换,通过研究,特此记录一下. 1.maven依赖 <!--数据库连接--> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> &

  • Spring Boot Cache使用方法整合代码实例

    参考: Spring Cache扩展功能实现 项目地址 使用本地Caffeine缓存 引入依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>com.github.ben

  • Spring boot文件路径映射配置代码实例

    springboot配置本地资源映射路径需要配置一下映射资源位置,下面来介绍一下过程. 1.添加配置类 package org.jcut.tools; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.servlet.config.annotation.ResourceH

  • spring boot 监听容器启动代码实例

    在使用Spring框架开发时, 有时我们需要在spring容器初始化完成后做一些操作, 那么我们可以通过自定义ApplicationListener 来实现. 自定义监听器 @Component public class MyApplicationListener implements ApplicationListener<ContextRefreshedEvent> { @Override public void onApplicationEvent(ContextRefreshedEve

  • Spring Boot 表单验证篇

    一. spring-boot-starter-validation 依赖概述 上一篇 <Spring Boot Web 开发注解篇>,就可以快速地进行 Web 开发.那么在表单提交的时候,我们需要进行验证.前端验证可以挡住 99% 的小白用户,这里要实现服务端验证. Starters 机制告诉我们,只要加入 spring-boot-starter-validation 这个 Starter ,就可以使用其实现验证.那什么是 spring-boot-starter-validation? spr

  • spring boot整合Swagger2的示例代码

    Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单. 1.代码示例 1).在pom.xml文件中引入Swagger2 <dependency> <groupId>io.springfox</groupId> <artifa

  • spring boot aop 记录方法执行时间代码示例

    本文研究的主要是spring boot aop 记录方法执行时间的实现代码,具体如下. 为了性能调优,需要先统计出来每个方法的执行时间,直接在方法前后log输出太麻烦,可以用AOP来加入时间统计 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency&

  • spring boot validation参数校验实例分析

    本文实例讲述了spring boot validation参数校验.分享给大家供大家参考,具体如下: 对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证. Spring Boot自身对数据在服务端的校验有一个比较好的支持,它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证. 1 pom依赖 <dependency> <groupId>org.springframework.boot</gr

随机推荐