好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

基于Feign传输对象无法接收参数的问题

Feign传输对象无法接收参数

今天碰到问题,当我们使用对象作为参数传输时,无法获得其参数值。

?

1

2

  @RequestMapping (value = "/oauth/client/save" )

  Integer saveClient( @RequestBody ClientInfo clientInfo);

发现接口内定义的@RequestBody注解是无法继承到实现中的,所以在impl中同样需要添加上@RequestBody注解。

Feign参数传递问题记录

对象传递

?

1

@RequestBody (required = false )

不支持多对象传递,至少我目前发现是这样的,如有错误或者改进的方法请提出

API层

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

    @FeignClient (value = "transaction-feign" )

    public interface TransactionApiService {

        /**

          * 交易流水查询 可分页

          *

          * @param param

          * @param pageNum

          * @param pageSize

          * @return

          */

        @RequestMapping (value = "/dealflow/list" , method = RequestMethod.POST)

        JsonResultDO dealFlowList( @RequestBody (required = false ) DealFlowDo param

                , @RequestParam (value = "pageNum" , defaultValue = "1" ) Integer pageNum

                , @RequestParam (value = "pageSize" , defaultValue = "20" ) Integer pageSize);

    }

接口层

?

1

2

3

4

5

6

7

8

9

10

11

12

13

/**

  * 交易流水查询 可分页

  * @return JsonResultDO

  */

@RequestMapping (value = "/dealflow/list" , method = RequestMethod.POST)

public Page<DealFlowDo> dealFlowList( @RequestBody (required = false ) DealFlowDo param

        , @RequestParam (value = "pageNum" , defaultValue = "1" ) Integer pageNum

        , @RequestParam (value = "pageSize" , defaultValue = "20" ) Integer pageSize

        , @RequestParam (value = "userId" ) Long userId){

    JsonResultDO resultDO = new JsonResultDO();

    Page<DealFlowDo> page = (Page<DealFlowDo> )dealFlowService.queryDealFlowList(userId, param, pageNum, pageSize);

    return page;

}

单个或多个参数传递

?

1

@RequestParam / @PathVariable /***

?

1

2

3

4

5

6

7

8

    /**

      * 根据商户号获取商户信息

      *

      * @param merNo

      * @return

      */

    @RequestMapping (value = "/merchant/{merNo}" , method = RequestMethod.GET)

    String getMerchantByMerNo( @PathVariable ( "merNo" ) String merNo);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://blog.csdn.net/qq_30062181/article/details/87980963

查看更多关于基于Feign传输对象无法接收参数的问题的详细内容...

  阅读:21次