微服务,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中需要添加的):

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-openfeign</artifactId>
   <version>2.2.3.RELEASE</version>
</dependency>
  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相当于一个代理对象,和我们平常代码中的接口注入类似。
不当之处可多多指正
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值