SpringCloud学习笔记(5)————Feign

  1. Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单,默认集成了Ribbon,与Eureka结合,实现了负载均衡的效果。
  2. 新建module:service-feign,修改pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.springcloud</groupId>
		<artifactId>eureka</artifactId>
		<version>1.0-SNAPSHOT</version>
	</parent>
	<groupId>com.springcloud</groupId>
	<artifactId>service-feign</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	<name>service-feign</name>

	<dependencies>
		<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-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	</dependencies>
</project>
  1. 修改application.yml
spring:
  application:
    name: service-feign
server:
  port: 8765
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
  1. 在启动类上添加@EnableEurekaClient,@EnableFeignClients注解,开启feign的功能。
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class ServiceFeignApplication {
	public static void main(String[] args) {
		SpringApplication.run(ServiceFeignApplication.class, args);
	}
}
  1. 定义一个feign的接口,用@FeignClient指明调用的服务
@FeignClient(value = "eureka-client")
public interface SchedualServiceHi {

    @GetMapping("/test")
    String sayHiFromClientOne(@RequestParam(value = "name") String name);

}
  1. 编写一个controller调用feign的接口
@RestController
public class HiController {

    @Autowired
    SchedualServiceHi schedualServiceHi;

    @GetMapping("/test")
    public String sayHi(@RequestParam String name) {
        return schedualServiceHi.sayHiFromClientOne(name);
    }
}
  1. 启动service-feign,访问接口,端口会在8672与8763轮询,实现负载均衡。
    在这里插入图片描述

版权声明:本文为qq_37024898原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。