新桥专业网站建设,wordpress写文章页面无法显示,上海关键词推广公司,一个公司如何做多个网站备案feign技巧 - form方式传值。 0. 文章目录1. 前言2. 调用样例3. 原理解析3.1 feign端序列化参数3.2 SpringMVC服务端解析参数3.3 补充 - 继承关系不会被传递的原因3.4 补充 - 不能使用GET。4. 总结1. 前言
直接正题。 如何使用feign进行fom表单方式的请求调用#xff0c;以及其… feign技巧 - form方式传值。 0. 文章目录1. 前言2. 调用样例3. 原理解析3.1 feign端序列化参数3.2 SpringMVC服务端解析参数3.3 补充 - 继承关系不会被传递的原因3.4 补充 - 不能使用GET。4. 总结1. 前言
直接正题。 如何使用feign进行fom表单方式的请求调用以及其中的注意事项。
2. 调用样例
// feign调用端// 注意事项// 1. 两个参数都要使用RequestPart注解进行标注.// 2. consumes属性配置为必选.// 3. 代表参数载体对象的params字段, 不能存在继承关系, 所有字段都必须直接定义在KDeployParams中. 如果存在基类, 那么处理流程中只有在KDeployParams中直接定义的字段才能被正确解析并传递给服务端基类的字段不会被feign解析传递. PostMapping(value /projectB/postWithFormData, consumes MediaType.MULTIPART_FORM_DATA_VALUE)String postWithFormData(RequestPart(file) MultipartFile file, RequestPart KDeployParams params);// 对应的服务端 // 注意事项// 1. 第二个参数params前面没有任何注解, 或者使用ModelAttribute。千万不要使用RequestPart.PostMapping(/projectB/postWithFormData)public String postWithFormData(RequestPart(required false, name file) MultipartFile file,KDeployParams params) throws InterruptedException, IOException { ... }
3. 原理解析
分为两部分 —— 发送端的feign以及服务端的SpringMVC。
3.1 feign端序列化参数
整条请求链路中feign端的调用层级最终会来到位于feign-form-xx.jar中的MultipartFormContentProcessor.process (...) 。
3.2 SpringMVC服务端解析参数
针对上文例子中在服务端接收层面SpringMVC中负责传递过来的参数还原/反序列化为KDeployParams的是ServletModelAttributeMethodProcessor该类实现了大名鼎鼎的HandlerMethodArgumentResolver。
3.3 补充 - 继承关系不会被传递的原因
PojoUtil的坑下面这里只会检索出当前类直接声明的字段。
3.4 补充 - 不能使用GET。
否则报如下错误
4. 总结
神在细节之中。
细节是魔鬼。