问题描述
项目中通过@FeignClient调用远端服务,通过lombok @Data 注解实现set和get方法。
@Component
@FeignClient(value = "serviceName", url = "url" )
public interface Client {
@PostMapping(path = "path" , produces = "application/json")
MethodResp method (MethodReq request);
}
@Data
public class MethodResp {
private String aBc;
}
发现接收到的aBc没有值,一直为null。
问题解决
MethodResp去掉@Data注解,手动实现set方法
public class MethodResp {
private String aBc;
public void setaBc(String aBc) {
this.aBc = aBc;
}
}
原因
lombok @Data注解,生成的set方法为 setABc, spring框架通过反射实现值的设置,寻找的方法是setaBc, 所以出现了问题。