所需材料:
- 一个普通的服务(本文起名: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
|
本文源码