微服务feign调用的事务控制,单独使用feign做服务调用
00-1010前言:对Feign的介绍,Feign的优点,如何使用Feign,用法总结
00-1010最近在学习微服务相关的知识,看了黑马的相关课程,总结了一些关于Feign的知识,希望对男生有所帮助,加深印象。
目录
Feign是一个声明式伪RPC REST客户端。它使用基于接口的注释,这对于客户端配置非常方便。Spring Cloud为Feign增加了支持Spring MVC的注释,并集成了Ribbon和Eureka支持负载均衡。
Feign是一个用于HTTP请求的轻量级客户端框架。通过接口和注释启动HTTP请求调试,面向接口编程,不像通过在Java中封装HTTP请求消息来直接调试。服务消费接收服务提供的服务,然后像本地连接一样进行调整,但实际上发出的是远程请求。让我们更方便优雅地调整基于HTTP的API,在Spring Cloud的解决方案中普遍应用。
在00-1010之前,我们使用RestTemplate发起远程调用:
string URL= http://user service/user/ order . get userld();user user=rest template . getfor object(URL,user . class);以上问题是代码:可读性差,编程体验不一致;复杂参数URL难以维护Feign是一个声明式http客户端,带有官方地址:Feign官方链接。
它的作用是帮助我们优雅地发送http请求,解决上述问题。
00-1010或者以我们之前的项目为例,在订单服务服务的pom文件中引入佯依赖:
依赖groupIdorg.springframework.cloud/groupId神器Spring-Cloud-Starter-open Feign/Artifact ID/Dependency在order-service的启动类中添加注释,开启Feign的功能:
@ EnableFeignClients @ Mapper scan( cn . it cast . order,Mapper )@ spring boot application public class order application public static void main(string[]args)[spring application . run(order application . class,args)在order-service中创建新接口,内容如下:
包cn . it cast . order . client;导入cn . it cast . order . POJO . user;导入org . spring framework . cloud . open feign . feign client;导入org . spring framework . web . bind . annotation . get mapping;导入org . spring framework . web . bind . annotation . path variable;@FeignClient(userservice )公共接口User client { @ get mapping(/User/{ id } )User find byid(@ path variable( id )Long id);}这个客户端主要基于SpringMVC的注释来声明远程调用的信息,比如:
服务名称:Userservice请求方法:GET请求路径:/user/{id}请求参数:Long id返回值类型:user。这样一来,Feign就可以帮助我们发送http请求,而不需要使用RestTemplate来发送。
我们修改了order-service中OrderService类中的queryOrderById方法,并使用Feign client代替RestTemplate:
@ Autowiredprivate user client user client;公共查询0 order byid(long orderid)//1。查询顺序order=ordermapper。find byid(orderid);//2.使用Feign发起http请求查询用户user user=user client . find byid(order . get userid());//3.将用户封装到0 order order . setuser(用户);//4.退回退货单;
00-1010使用Feign的步骤:
(1)引入依赖性
添加@EnableFeignClients注释。
编写FeignClient接口。
使用FeignClient中定义的方法,而不是RestTemplate。
关于微服Feign的介绍和使用的这篇文章到此为止。想了解更多关于微服Feign的信息,请搜索以前关于盛行IT的文章或者继续浏览下面的相关文章。我希望你能在未来更多地支持它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。