起因是controller写了一个post方法
@PostMapping("test")
public Resp<Object> orgClientIdentityIdentify(@RequestBody RequestDto) {
// xxx
}
Bean中有一个属性
@Setter
@Getter
public class OrgClientIdentityIdentifyReqDto extends BaseReqDto implements Serializable {
private List<MCiIdentifier> mCiIdentifierList;
// ...
}
当测试接口时,`mCiIdentifierList` 始终无法注入
笔者尝试过各种办法后,有了惊奇的发现
这是Lombok生成的set方法(class文件)
这是使用idea的alt+insert生成的getter、setter
set方法上第一个字母m并没有大写!
按照笔者学习java以来都是:get、set方法会将属性的首字母转为大写,相应的反序列化的时候会将get/set后面跟着的第一个字母转小写
Lombok生成的getter/setter是符合直觉的
问题找到了,解决也很简单
1、使用@JsonProperty("mCiIdentifierList")指定
2、更改属性名,以两个小写字母开头
3、前端传数据的时候将自谦前面两个字母都传小写的即可