1.概述

在平台中我们需要调用微服务一般的情况下,我们可以编写Feign接口进行调用,有些情况下,比如在表单方案中,我们不想编写一个固定的Feign接口,平台提供了一个通用的调用方法。

2.具体实现

在jpaas-share 模块提供了一个接口调用类。

@FeignClient("customer-service")
public interface CustomerClient {

    /**
     * 使用post调用微服务接口。
     * @param appName  微服务名称
     * @param url        调用的URL
     * @param params    调用的参数
     * @return
     */
    @PostMapping("//{appName}/{url}")
    Object executePostApi(@PathVariable("appName") String appName,
                          @PathVariable("url") String url,
                          @RequestBody Object params);


    /**
     * 使用get方法调用微服务接口。
     * @param appName
     * @param url
     * @param params
     * @return
     */
    @GetMapping("//{appName}/{url}")
    Object executeGetApi(@PathVariable("appName") String appName,
                         @PathVariable("url") String url,
                         @SpringQueryMap Object params);
}

用户可以通过 SpringUtil.getBean(com.redxun.feign.common.CustomerClient.class)获取具体的类实例进行使用。

3.需要注意的问题

  • 参数的URL

参数URL首字符不要使用 斜杠 (/) 。

4.案例

import com.redxun.common.utils.SpringUtil;
import com.redxun.system.core.service.SysSeqIdServiceImpl;

SysSeqIdServiceImpl sysSeqIdServiceImpl=SpringUtil.getBean(SysSeqIdServiceImpl.class);
return sysSeqIdServiceImpl.genSeqNo("tasknum");


文档更新时间: 2022-05-24 11:32   作者:zyg