Spring中无对应属性的Get方法为何自动生成返回字段?
问题原因解析
这是因为JSON序列化框架(比如Spring常用的Jackson)默认通过识别类中的getter方法生成JSON字段,并非只依赖类的成员属性。
具体到你的代码场景:
- 你自定义了
getStoreInfo2()方法,序列化框架会按命名规则处理方法名:去掉前缀get,将剩余部分首字母小写得到storeInfo2,并把该方法的返回值作为对应字段的值写入JSON。 - 编译后的类没有
storeInfo2属性是正常情况,Lombok的@Data注解只会为你显式声明的成员属性(比如storeInfo)生成配套的getter/setter,不会因为自定义了一个getter方法就自动生成对应的属性。
如果不想让这个方法对应的字段出现在返回的JSON中,给getStoreInfo2()方法添加@JsonIgnore注解即可,序列化时框架会自动忽略该方法。
内容的提问来源于stack exchange,提问作者jiankunking
相关产品推荐
相关产品推荐

