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

发布时间 - 2026-01-11 02:34:23    点击率:

编写 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 就会自动的验证参数的正确性。

来个测试

把用户名空着

参数完整且正确

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


# Spring  # Boot  # 参数验证  # 验证  # SpringBoot validator参数验证restful自定义错误码响应方式  # SpringBoot整合Hibernate Validator实现参数验证功能  # Spring Boot利用JSR303实现参数验证的方法实例  # spring boot参数验证注解@NotNull、@NotBlank和@NotEmpty  # 用户注册  # 的是  # 就会  # 是因为  # 只需  # 要在  # 要做  # 可以使用  # 要对  # 你已经  # 来个  # 用在  # 大家多多  # 是否正确  # 应用程序  # 空着  # java  # data  # UserRegisterModel  # class 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  如何彻底删除建站之星生成的Banner?  如何用免费手机建站系统零基础打造专业网站?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Java垃圾回收器的方法和原理总结  北京专业网站制作设计师招聘,北京白云观官方网站?  大连网站制作公司哪家好一点,大连买房网站哪个好?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Laravel distinct去重查询_Laravel Eloquent去重方法  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  Laravel如何优化应用性能?(缓存和优化命令)  在线制作视频网站免费,都有哪些好的动漫网站?  Windows Hello人脸识别突然无法使用  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Python文件流缓冲机制_IO性能解析【教程】  Laravel如何实现API速率限制?(Rate Limiting教程)  制作电商网页,电商供应链怎么做?  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  制作旅游网站html,怎样注册旅游网站?  Python面向对象测试方法_mock解析【教程】  黑客如何利用漏洞与弱口令入侵网站服务器?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  如何自定义建站之星模板颜色并下载新样式?  北京网站制作的公司有哪些,北京白云观官方网站?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel如何使用Telescope进行调试?(安装和使用教程)  如何确保FTP站点访问权限与数据传输安全?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  详解Oracle修改字段类型方法总结  创业网站制作流程,创业网站可靠吗?  EditPlus中的正则表达式 实战(4)  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  网站制作报价单模板图片,小松挖机官方网站报价?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  EditPlus中的正则表达式 实战(2)  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  教学论文网站制作软件有哪些,写论文用什么软件 ?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?