欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

openFeign服务调用

程序员文章站 2022-06-13 11:46:07
...

openFeign设计原理

openFeign是轻量级的Http请求框架,不再像restTemplate那样显式声明请求URL,参数,返回类型,直接通过模块化的思想,将服务调用层封装为一个模块,在controller层像调用普通service那样调用,相对更加直观。封装了Http调用流程,更适合面向接口化的变成习惯

传统http请求流程

类似httpclient,restTemplate,OkHttp都是如此

openFeign服务调用

openFeign流程

在Feign 底层,通过基于面向接口的动态代理方式生成实现类,将请求调用委托到动态代理实现类,基本原理如下所示:

openFeign服务调用

实践

引入依赖

        <!-- openfeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

主启动类加注解

@EnableFeignClients
@SpringBootApplication
@EnableEurekaClient //声明自己是eureka客户端
public class Order8102 {

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

}

服务调用层

@Component
@FeignClient(value = "PAYMENT8101")//声明服务名
public interface FeignService {

    @RequestMapping("/res/res")//controller方法的接口声明
    String create();
}

controller服务调用就想正常的调用service的方法即可

@RestController
@Slf4j
@RequestMapping("/get")
public class OrderController {

    @Autowired
    private FeignService feignClient;

    @RequestMapping("/get")
    public String create(){
        return feignClient.create();
    }

}
相关标签: springcloud