浅谈SpringCloud里面的声明式REST客户端(Feign)
首先Feign是SpringCloud提供的我个人理解是一个用于连接的一个REST客户端的工具
1. 在使用前一定要添加以来,然后要注册到Eureka的注册中心。这样才能保证通讯。然后还要添加Feign的依赖。
2. 在启动类上面加上这两个注释才能保证服务的发现
其中@EnableDiscoveryClient的作用就是作为服务的发现(可理解为声明 -> Eureka )
@EnableFeignClients的意思是说这个我是一个可被作为Feign使用的一个服务(也可理解为服务的声明 -> Feign)
3. 实现服务之间的调用要注意,这一点特别的重要
A. 首先必不可少的肯定是需要一个
@FeignClient("weatherCityEureka")
这个注释的意思就是说我要调用那个服务中心里面的一个服务,我个人建议为了防止混淆还是取你调用的哪个服务的名称就可以了
B. 其次就是这个注释
@GetMapping("/weatherCityEureka/cities/list")
这个注释的千万得注意,首先见名思意就知道这个请求方式是GET,千万不要乱写这个请求方式,因为这边你需要和你调用的那个服务的请求方式要一致,然后就是后面的value,这个名称得千万注意,我反正是踩了这个坑了,也尝试了很多次才证明我的这个做法是正确的,首先得确认被调用方的服务有没有定义Server.servlet.path=***这个属性,如果定义的话千万注意要加上
server.servlet.path = *** 后面的名称,不然会报404错误,也就是服务找到了,但是方法找不到,例如,
被调用方: weatherCityEureka
调用方: weatherCollectionEureka
这个要千万保证一致,不然就会报出很多乱七八糟的错误
C. 再其次就是定义的这个方法是一个接口(Interface)