feign 远程服务调用组件,主要是用于微服务之间接口的互相调用
feign需要依赖于注册中心,如eurake、nacos,即用feign的提供者和消费者需要都被注册发现在注册中心中
生产者
生产者不需要做其它配置,只需要将自己注册进注册中心中就行了,如controller
1 2 3 4 5 6 7 8 9
| @RestController @RequestMapping("/provide") public class DemoController {
@GetMapping("/ces") public String provide(){ return "我打印出来了"; } }
|
消费者
消费者需要引入openfeign依赖,且也需将自己注册进注册中心,并配置生产者信息
1 2 3 4
| <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
|
1 2 3 4 5 6 7 8
| @FeignClient(value = "feign-provider") public interface MyFeign {
@GetMapping("/provide/ces") String provide(); }
|
1 2 3 4 5 6 7 8 9 10
| @Service public class DemoService { @Autowired public MyFeign myFeign;
public String provide(){ return myFeign.provide(); } }
|
整合到springboot很简单,难的是eurake版本的适配 查询spring版本
本次测试版本
1 2 3 4 5 6
| <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/> </parent>
|
1 2 3 4 5 6 7 8 9 10 11
| <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
|