SpringCloud学习笔记之——Feign基础入门

Feign是什么?

Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的HTTP客户端 Feign.

开始我们的代码

接着前面SpringCloud学习笔记之——Eureka快速入门继续。

首先,我用的IDE是STS(下载页面

接着创建一个工程,pom.xml主要的依赖包如下


			org.springframework.boot
			spring-boot-starter-web
		
		
			org.springframework.cloud
			spring-cloud-starter-feign
		
		
			org.springframework.cloud
			spring-cloud-starter-eureka-server
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		

添加了eureka的依赖包,因为这里是作为eureka的服务来启动

然后修改application.properties文件,我把后缀改为了更简洁的yml

server:
  port: 8765
spring:
  application:
    name: server-feign
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka
  • spring.application.name :可以理解为声明此服务的名字
  • eureka.client.serviceUrl.defaultZone :这是eureka服务的地址

修改主程序入口*Applicaiton.java

@SpringBootApplication
@EnableFeignClients
public class Feign2Application {

	public static void main(String[] args) {
		SpringApplication.run(Feign2Application.class, args);
	}
}

添加了@EnableFeignClients注解,开启feign功能

创建一个service接口和一个测试类

SpringCloud学习笔记之——Feign基础入门_第1张图片

TestService.java:

@FeignClient("service-hi")
public interface TestService {
	@RequestMapping(value="/getHi",method=RequestMethod.GET)
	public String getHi();
}

这里的service-hi 为 需要用Feign“处理”的服务名。

TestController.java:

@RestController
public class TestController {
	@Resource
	TestService service;
	
	@RequestMapping(value="/getHi",method=RequestMethod.GET)
	public String getHi() {
		return service.getHi();
	}
}

/getHi 为 service-hi 里的一个测试方法。

service-hi服务的代码请查看SpringCloud学习笔记之——Eureka快速入门。

Feign配置完毕,开始测试

  1. 首先启动Eureka服务,端口8761。
  2. 再启动两个service-hi client服务,端口8762、8763。(先开启一个,然后修改端口号再启动一个)
  3. 最后启动feign服务,端口8765。

2和3启动顺序可变。


访问http://localhost:8765/getHi



端口改变,成功了。


你可能感兴趣的:(Spring)