Feign主要为了面向接口编程
feign是web service客户端,是接口实现的,而ribbon是通过微服务名字访问通过RestTemplate调用的,如下:
在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(类似于以前Dao接口上标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可)
在总的springcloud-api中,编写服务接口
都导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
这里将接口写好之后使用@Component注解注入spring容器,然后新建模块springcloud-consumer-dept-feign
这里其实就是springcloud-consumer-dept-80模块复制过去,不一样的是
这里使用接口方式注入,也就是用了spring容器的思想不使用RestTemplate来获取
然后使用@EnableFeignClients注解和@ComponentScan注解去扫描包路径
即可成功访问获得数据