Feign是Netflix公司开发的声明式——(Feign:声明式服务调用)
Feign和Ribbon的区别是:
简单的说,ribbon是直接通过微服务的地址调用服务,Feign是通过调用接口来进行调用服务。下面我就来根据二者的代码来分析两者的区别:
项目名称:eureka-consumer
项目构建步骤:
1、引入netflix-eureka-clinet依赖、Spring Web依赖、Feign依赖(Open Feign)
2、修改配置文件为yml形式
3、主要配置:
application.yml中配置如下
port: 7003
spring:
application:
name: eureka-consumer #注意consumer的改写
eureka:
client:
service-url:
defaultZone: http://localhost:7000/eureka/
instance:
hostname: localhost #主机地址
4、启动类:加入如下注解
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
5、编写接口类TestService
@Service
//该注解表明标明的是服务提供者的名字
@FeignClient(name = "eureka-provider")
public interface TestService {
//访问路径和controller层的保持一致
//接口中的的访问路径和接口函数的名字保持一致、和provider中的访问路径保持一致
@RequestMapping("/hello")
public String hello();
}
6、编写TestController
@RestController
public class TestController {
@Autowired
private TestService testService;
@RequestMapping("/hi")
public String sayHello(){
return testService.hello();
}
}