在使用RestTemplate时,会发现拼接URL时非常不美观,并且在参数多了以后拼接起来也容易出错,而Feign就是为了解决这个问题,让远程调用像调用本地方法一样优雅且方便.
功能: 更优雅的进行远程调用
使用方法:
引入依赖,由于OpenFeign是基于负载均衡的所以要引入三个依赖,openFeign,LoadBalance和注册中心,这里使用Nacos
通过注解开启Feign的功能
在启动类上加上@EnableFeignClients
在服务调用端编写Feign客户端,并加上@FeignClient(value=”应用名”)URL的对应要与被调用方一致,方法名无所谓.这里有三个注意点,一、传递参数的时候最好加上@RequestParam注解,注解内标明被调用方的参数名.二、传递对象要用@SpringQueryMap注解标记一下.三、传递json数据要用@RequestBody标记
修改远程调用代码,此时的远程调用就像调用本地方法一样简单方便,但还不是最简单
最佳实践
功能:简化客户端代码使其更方便易用,如与调用方的接口把Feign中的代码抽取为一个单独的模块
使用方法:
新建feign-api模块
引入依赖,这里直接把依赖交给父项目即可
把feign-api模块打成jar包
在服务调用方引入依赖
由于Spring只扫描启动类下的包所以为了使Feign客户端成为bean需要在启动类上的@EnableFeignClients(basePackages = “包名”)