栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

微服务,springCloud项目关于feign的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

微服务,springCloud项目关于feign的使用

项目中需要使用feign去调用其他服务的接口时,我们要进行下面的步骤:
  1. 在项目的启动类加上注解@EnableFeignClients,目的是启用feign客户端。
    示例如下:
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@MapperScan("com.zdww.mapper")
public class ScenesWebApplication {
    public static void main(String[] args) {
        SpringApplication.run(ScenesWebApplication.class, args);
    }
}

需要的依赖为(pom中需要添加的):


   org.springframework.cloud
   spring-cloud-starter-openfeign
   2.2.3.RELEASE

  1. @FeignClient此注解用来定义feigh客户端,比如我想要调用其他服务中和用户相关的一个接口,则我需要新建一个接口类,假设类名为UserCenterClient。
@FeignClient(name = "ump-apis", url = "http://ump-apis.com:8780")
@Service
public interface UserCenterClient {
    @RequestMapping(value = "/apis/config/getConfigByAppAndCode", params = { "configCode", "appCode" }, method = RequestMethod.GET)
    ResultMsg getConfigByAppAndCode(
            @ApiParam(value = "access_token", required = true) @RequestParam(value = "access_token") String access_token,
            @ApiParam(value = "configCode", required = true) @RequestParam(value = "configCode") String configCode,
            @ApiParam(value = "appCode", required = true) @RequestParam(value = "appCode") String appCode);

其中@FeignClient中name参数名称是需要调用的微服务名称
(spring.application. name=ump-apis)
url为指定调用服务的全路径
也就是该例子定义了一个feign客户端,将远程服务http://ump-apis.com:8780/apis/config/getConfigByAppAndCode映射为一个本地Java方法调用。
其中此处写的getConfigByAppAndCode中的参数及类型必须和ump-apis这个远程服务中此接口的参数及类型保持一致。
3. 最后我们便是要去使用这个方法了,在需要使用的地方将此接口使用@Autowired注入,直接调用即可。

@Autowired
    private UserCenterClient userCenterClient;
    @Test
    public void testSelect() {
        String accessToken = securityUtil.getClientToken();
        ResultMsg resultMsg = userCenterClient.listDictionaryByParentCode(accessToken,"FIELD_TYPE","qhzfw");
        System.out.println(resultMsg);
    }

}

总结:前两步:定义feign客户端
第三步:是使用所定义的feign客户端
注入的userCenterClient相当于一个代理对象,和我们平常代码中的接口注入类似。
不当之处可多多指正

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号