Lombok首字母小写,第二个字母大写造成的参数无法接收问题

1.问题现象

如果VO实体用@Data注解生成get/set,对于首字母小写,第二个字母大写的成员变量,@RequestBody无法完成自动映射,取值为null

2.问题实质

Lombook的@Data注解和Spring的Jackson对于get/set的生成方式不同

3.问题原因

private String xIndex;

对于这种首字母小写,第二个字母大写的成员变量,Lombook生成的get/set方法如下:


Jackson和Idea生成的get/set方法如下:


因为Lombook和jackson生成set方法的方式不同,造成SpringMVC在映射VO字段时无法找到setxIndex()方法(因为Lombook生成的是setXIndex),故自动映射失败。

4.解决方法

1、利用Idea生成符合Spring规范的get/set(略low);

2、利用@JsonProperty(value = "xIndex"),强制Jackson在反序列化时给属性重新命名。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章