服务消费(feign)

所需材料:

  • 一个普通的服务(本文起名:feign-provider)注册到注册中心
  • feign client (本文起名:feign-consumer)注册到注册中心

创建feign-provider

依赖

1
2
3
4
5
6
7
8
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
1
2
3
4
5
6
7
8
@RestController
public class SController {

@GetMapping("api")
public String api(){
return "i am from feign-provider";
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
server:
port: 8088

spring:
application:
name: feign-provider

eureka:
client:
serviceUrl.defaultZone: http://www.wekri.com/eureka
instance:
hostname: localhost
instance-id: feign-provider

创建feign-consumer

1
2
3
4
5
6
7
8
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class FeignConsumerApplication {

public static void main(String[] args) {
SpringApplication.run(FeignConsumerApplication.class, args);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CController {

@Autowired
FeClient feClient;

@GetMapping("/consume")
public String consume() {
return feClient.consumer();
}
}
1
2
3
4
5
6
7
8
9
10
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient("feign-provider")
public interface FeClient {

@GetMapping("/api")
String consumer();

}
1
2
3
4
5
6
7
8
9
10
11
12
server:
port: 8087

spring:
application:
name: feign-consumer
eureka:
client:
serviceUrl.defaultZone: http://www.wekri.com/eureka
instance:
hostname: localhost
instance-id: feign-consumer

启动后调用http://127.0.0.1:8087/consume,就可以看到

1
i am from feign-provider

本文源码


服务消费(feign)
https://www.wekri.com/springcloud/springCloudFeign/
Author
Echo
Posted on
May 26, 2018
Licensed under