3千字详细讲解OpenFeign的使用姿势

思维导图
3千字详细讲解OpenFeign的使用姿势文章插图
文章已收录Github精选 , 欢迎Star:
前言目前在SpringCloud技术栈中 , 调用服务用得最多的就是OpenFeign , 所以这篇文章讲一下OpenFeign , 希望对大家有所帮助 。
一、构建工程使用Nacos作为注册中心 , 不会搭建Nacos的话 , 可以参考上一篇注册中心的文章 。
首先父工程parent引入依赖 。
org.springframework.cloudspring-cloud-dependenciesFinchley.SR1pomimportorg.springframework.cloudspring-cloud-alibaba-dependencies0.2.2.RELEASEpomimportorg.springframework.cloudspring-cloud-openfeign2.0.1.RELEASEpomimportorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starterorg.springframework.cloudspring-cloud-starter-alibaba-nacos-discoverycom.alibaba.nacosnacos-client1.2.0搭建提供者provider工程和消费者consumer工程 。
provider工程继承父工程的pom文件 , 编写启动类如下:
@SpringBootApplication@EnableDiscoveryClient//注册中心public class ProviderApplication {public static void main(String[] args) throws Exception {SpringApplication.run(ProviderApplication.class, args);}}provider工程的配置文件如下:
server:port: 8080spring:application:name: providercloud:nacos:discovery:server-addr: 127.0.0.1:8848service: ${spring.application.name}提供接口 , Controller如下:
@RestControllerpublic class ProviderController {@RequestMapping("/provider/list")public List list() {List list = new ArrayList<>();list.add("java技术爱好者");list.add("SpringCloud");list.add("没有人比我更懂了");return list;}}消费者consumer工程也继承parent的pom文件 , 加上Feign依赖:
org.springframework.cloudspring-cloud-starter-openfeign编写启动类 , 如下:
@SpringBootApplication@EnableDiscoveryClient//开启feign接口扫描 , 指定扫描的包@EnableFeignClients(basePackages = {"com.yehongzhi.springcloud"})public class ConsumerApplication {public static void main(String[] args) throws Exception {SpringApplication.run(ConsumerApplication.class, args);}}环境搭建完成后 , 接下来讲两种实现使用方式 。
二、声明式这种很简单 , 消费者consumer工程增加一个ProviderClient接口 。
@FeignClient(name = "provider")//会扫描指定包下 , 标记FeignClient注解的接口//会根据服务名 , 从注册中心找到对应的IP地址public interface ProviderClient {//这里跟提供者接口的URL一致@RequestMapping("/provider/list")String list();}