浅谈SpringCloud里面的声明式REST客户端(Feign)

首先Feign是SpringCloud提供的我个人理解是一个用于连接的一个REST客户端的工具

1. 在使用前一定要添加以来,然后要注册到Eureka的注册中心。这样才能保证通讯。然后还要添加Feign的依赖。

浅谈SpringCloud里面的声明式REST客户端(Feign)

2. 在启动类上面加上这两个注释才能保证服务的发现

其中@EnableDiscoveryClient的作用就是作为服务的发现(可理解为声明 -> Eureka )

       @EnableFeignClients的意思是说这个我是一个可被作为Feign使用的一个服务(也可理解为服务的声明 -> Feign)

浅谈SpringCloud里面的声明式REST客户端(Feign)

3. 实现服务之间的调用要注意,这一点特别的重要

浅谈SpringCloud里面的声明式REST客户端(Feign)

    A. 首先必不可少的肯定是需要一个

@FeignClient("weatherCityEureka")

    这个注释的意思就是说我要调用那个服务中心里面的一个服务,我个人建议为了防止混淆还是取你调用的哪个服务的名称就可以了

    B. 其次就是这个注释

@GetMapping("/weatherCityEureka/cities/list")

    这个注释的千万得注意,首先见名思意就知道这个请求方式是GET,千万不要乱写这个请求方式,因为这边你需要和你调用的那个服务的请求方式要一致,然后就是后面的value,这个名称得千万注意,我反正是踩了这个坑了,也尝试了很多次才证明我的这个做法是正确的,首先得确认被调用方的服务有没有定义Server.servlet.path=***这个属性,如果定义的话千万注意要加上

server.servlet.path = *** 后面的名称,不然会报404错误,也就是服务找到了,但是方法找不到,例如,

被调用方: weatherCityEureka

浅谈SpringCloud里面的声明式REST客户端(Feign)

浅谈SpringCloud里面的声明式REST客户端(Feign)

调用方: weatherCollectionEureka

浅谈SpringCloud里面的声明式REST客户端(Feign)

这个要千万保证一致,不然就会报出很多乱七八糟的错误

C. 再其次就是定义的这个方法是一个接口(Interface)