SpringBoot-kotlin中 data class中字段必填与否使用记录

情况一

data class User(val userName:String,val password:String)
 @PostMapping("/signIn.do")
    fun signIn(@RequestBody user: User):BaseResult{
        logger.info(user)
        return BaseResult.SuccessResult()
    }

说明:当传入空Json串或json串中没有userName和password字段时,无法进入该controller,外部直接会拦截,抛出400错误

情况二

data class User(val userName:String="张三",val password:String)

说明:当实体类定义为上面的形式时,password为必填字段,只有password匹配情况一的说明,userName不传时会赋默认值,传入userName时会替换默认值

情况三

data class User(val userName:String="张三",val password:String?)

说明:定义为上面的形式时,没有必填字段,即任何字段都能为空,userName为空时会赋默认值,password为空时将为null

注意

上面的三种情况说明是针对字段的说明。如果请求时没有传入任何数据,即空字符串时,无论定义为上面的哪种形式,都会被拦截,不会进入controller,上面三种情况说明的‘空’是指字段的空。但是对象还是要传的,比如:

POST http://localhost:8080/signIn.do
Content-Type: application/json

{
  
}
  • 错误举例(没有json串,会回传400错误):
POST http://localhost:8080/signIn.do
Content-Type: application/json

你可能感兴趣的:(SpringBoot-kotlin中 data class中字段必填与否使用记录)