SpringCloud 集成Feign

什么是Feign

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。

简而言之:

  • Feign 采用的是基于接口的注解
  • Feign 整合了ribbon

创建service-order-feign工程

Maven依赖

org.springframework.boot

spring-boot-starter-parent

1.5.2.RELEASE

 

 

UTF-8

UTF-8

1.8

 

org.springframework.cloud

spring-cloud-starter-eureka

org.springframework.cloud

spring-cloud-starter-ribbon

org.springframework.boot

spring-boot-starter-web

org.springframework.cloud

spring-cloud-starter-feign

org.springframework.boot

spring-boot-starter-test

test

 

org.springframework.cloud

spring-cloud-dependencies

Dalston.RC1

pom

import

 

org.springframework.boot

spring-boot-maven-plugin

 

spring-milestones

Spring Milestones

https://repo.spring.io/milestone

false

 

application.yml配置

spring.application.name=eureka-consumer
server.port=2101

eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/

 

编写service,调用service-member

@FeignClient("service-user") //指定提供服务的服务名
public interface IUserService {

    @RequestMapping("/getUser")//与提供服务的mapping一样
    User getUser();
}

@FeignClient 需要调用服务名称,@RequestMapping服务请求名称

演示效果

@SpringBootApplication

@EnableEurekaClient

@EnableFeignClients

public class OrderFeignApp {

 

public static void main(String[] args) {

SpringApplication.run(OrderFeignApp.class, args);

}

 

 

 

 

}

 

@RestController
@RequestMapping("/test")
public class testController {
   
    @Autowired(required = false)
    private IUserService userService;
    @RequestMapping("/findOne")
    public String getUserById(){
        User user = userService.getUser();
        return user.toString();

    }

 SpringCloud 集成Feign_第1张图片

 需要注意的是,当我们调用的时候传过来是复杂类型时,默认是post类型

 

你可能感兴趣的:(JAVA,spring)