spring - Spring Cloud OpenFeign 创建动态查询参数失败
问题描述
Spring cloud openFeign 无法创建动态查询参数。它抛出异常是因为 SpringMvcContract 试图找到不存在的 RequestParam 值属性。
java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0
@RequestMapping(method = RequestMethod.GET, value = "/orders")
Pageable<Order> searchOrder2(@RequestParam CustomObject customObject);
我尝试使用@QueryMap
而不是@RequestParam
但@QueryMap
不生成查询参数。
顺便说一句@RequestParam Map<String, Object> params
,方法参数可以很好地生成动态查询参数。
但是我想使用一个自定义对象,其中 feign 客户端可以从对象的属性中生成动态查询参数。
解决方案
Spring Cloud OpenFeign提供了等价的@SpringQueryMap注解,用于将POJO或Map参数注解为查询参数映射
所以你的代码应该是:
@RequestMapping(method = RequestMethod.GET, value = "/orders")
Pageable<Order> searchOrder2(@SpringQueryMap @ModelAttribute CustomObject customObject);
推荐阅读
- vb.net - 运行程序后我需要帮助获取正确的值
- swift - 如何将两个不同的视图控制器设置为同一个标签栏项目?
- java - Java按顺序将数字插入数组
- reactjs - 如何在 React Native 中使用按钮事件而不是手势滚动到下一页
- sql - 避免在 SELECT 列表和 WHERE 子句中重复表达式
- ajax - ASP.NET MVC - 在同一视图中处理多个模型
- java - Eclipse 中的 Java AWT 包“不可访问”
- python - 使用 Sphinx 记录 PyCharm 项目的问题
- javascript - hls.js 将视频 PTS 从单位转换为秒
- android - 在 GroupAdapter 中的按钮上设置 OnClickListener