java spring,uName,kValue,前端传值后端接不到
大神链接https://blog.csdn.net/qq_39327650/article/details/134419523本文是参考上述大神链接,自己写这个博客主要是给自己加深印象,大神链接里描述的很清晰,包括源码解析,详细描述参考大神。
由于springboot用的是jackson进行的反序列化,所以uName和kValue在前端传值后,会被序列化成uname和kvalue。
原理:从第一个字母开始解析,如果第一个字母是大写的,于是就将它转成小写,然后找下一个,如果还是大写,就继续转成小写,直到找到一个小写字母后,就把之后的字母(不管大小写)一起拼接进来。
当然这种情况会出现在使用lombok中的@data注解会出现这中情况。
使用idea的构造方法,生成get、set不会出现。
解决方式:
1、使用idea的构造方法,生成get、set不会出现。
2、在实体类的变量中增加注解 @JsonProperty。
3、增加lombok配置:lombok.accessors.capitalization = [basic | beanspec] (default: basic)
结论:
1.尽量不要使用这种不规范的命名。
2.利用注解 @JsonProperty方式解决。