
由于最近公司微服务开始用 springcloud ,用的 feign 。 于是,我封装了做公共的 DTO 层来做服务之间的数据传输,简单的来说如下
<!-- 引入 open-feign --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId> </dependency> 公共传输类大致如下
public class RPCRequest<T> implements Serializable { /** 数据 */ private T data; } feign 接口
@FeignClient("test.engine") public interface TestClient { @PostMapping(value = "/rest/test/a") RPCResult<TestDTO> test(@RequestBody RPCRequest<TestDTO> request); } 问题来了,为啥客户端调用服务端接口时获取的 TestDTO 的数据为 null ? feign 不支持泛型操作?大佬求解
1 clickhouse 2022-01-16 10:05:21 +08:00 1. feign 支持泛型; 2. 建议抓包或者 debug 看眼返回的原始数据格式。 |
2 night98 2022-01-16 17:13:29 +08:00 1.支持 2.你这么写,需要服务端的接口返回格式一致,例如: RPCResult<TestDTO> xxxfunc(); |