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 就会自动的验证参数的正确性。
来个测试
把用户名空着
参数完整且正确
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Java中break、continue、return在for循环中的使用
这篇文章主要介绍了break、continue、return在for循环中的使用,本文是小编收藏整理的,非常具有参考借鉴价值,需要的朋友可以参考下2017-11-11Java详细分析讲解自动装箱自动拆箱与Integer缓存的使用
装箱就是把基本类型转换成包装类,拆箱就是把包装类转换成基本类型,下面这篇文章主要给大家介绍Java中自动装箱、自动拆箱与Integer缓存,需要的朋友可以参考下2022-04-04DynamicDataSource怎样解决多数据源的事务问题
这篇文章主要介绍了DynamicDataSource怎样解决多数据源的事务问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-07-07
最新评论