当前位置: 首页 > news >正文

如何开发网站平台用网站模板建网站

如何开发网站平台,用网站模板建网站,网站建立公司,什么情况下网站需要备案你还在用OpenFeign嘛?快来试试 SpringBoot3 中的这个新玩意!声明式HTTP调用 1、由来 Spring Boot3 去年底就已经正式发布,我也尝了一把鲜,最近有空会和小伙伴们慢慢聊聊 Spring Boot3 都给我们带来了哪些新东西。 今天我们就先…

你还在用OpenFeign嘛?快来试试 SpringBoot3 中的这个新玩意!声明式HTTP调用

1、由来

Spring Boot3 去年底就已经正式发布,我也尝了一把鲜,最近有空会和小伙伴们慢慢聊聊 Spring Boot3 都给我们带来了哪些新东西。

今天我们就先来看看声明式 HTTP 接口。

用过 Spring Cloud 的小伙伴都知道,在 Spring Cloud 家族中,负责进程间通信的,我们可以使用 RestTemplate 或者 OpenFeign(当然也有其他方式如基于消息中间件的消息驱动的微服务或者基于 gRPC 的调用等)。

RestTemplate 我们可以将之当作一个普普通通的 HTTP 调用工具来对待,区别于其他的 HTTP 客户端,RestTemplate 用来调用 RESTful 风格的接口特别方便。

不过,比 RestTemplate 更加方便的是 OpenFeign,通过接口声明就可以实现远程调用。

以前我们想要用声明式 HTTP 调用,需要通过 OpenFeign 来实现,这个需要第三方的依赖,从 Spring6 开始(Spring Boot3),Spring 自己提供了类似的功能通过 @HttpExchange 注解也能方便的实现 声明式 HTTP 调用。以后跨服务调用又多了一个选择。

2、使用

接下来我通过一个案例来和小伙伴们演示一下 @HttpExchange 注解的具体玩法。

首先我们先创建一个普通的名为 server 的 Spring Boot 项目,这个普通的 Spring Boot 项目中只需要提供一个简单的测试接口即可,如下:

@RestController
public class HelloController {@GetMapping("/server/hello")public String hello(String name) {return "hello " + name;}}

这个对大家来说应该是没什么难度的,我就不多说了。

现在假设我有另外一个服务名为 client,我想在 client 中调用 server 中提供的这个接口。

首先我们来创建 client 这个项目,大家注意,创建的时候我们不仅需要添加 Web 依赖,还需要 Reactive Web,因为这个 @HttpExchange 底层基于 WebClient,而 WebClient 则是 Reactive Web 提供的:

创建完成后,接下来我们就可以声明 Http 接口了:

@HttpExchange("/server")
public interface ToDoService {@GetExchange("/hello")String hello(@RequestParam String name);
}

这些用法跟我们在 SpringMVC 中常用的 @RequestMapping 和 @GetMapping 等特别类似:

  • @HttpExchange 类似于 @RequestMapping,可以将之放在类上,起到一个请求窄化的作用,也可以放在方法上,放在方法上我们可以通过 method 属性来指定具体的请求方法,这个也跟 @RequestMapping 类似: @HttpExchange(value = "/server",method = "GET")
  • @GetExchange 类似于 @GetMapping,这个就不再赘述了,其他类似的注解还有 @DeleteExchange@PatchExchange@PostExchange@PutExchange 等。
  • 另外需要注意的是请求方法的参数需要加上 @RequestParam 注解,这一点和 OpenFeign 比较类似。

接口声明好之后还没完,我们还需要配置一下才能使用。如下:

@Configuration
public class WebConfig {@BeanWebClient webClient() {return WebClient.builder().baseUrl("http://localhost:8080").build();}@BeanToDoService toDoService() {HttpServiceProxyFactory httpServiceProxyFactory =HttpServiceProxyFactory.builder(WebClientAdapter.forClient(webClient())).build();return httpServiceProxyFactory.createClient(ToDoService.class);}
}

这个配置主要是两方面:

  1. @HttpExchange 是基于 WebClient 的,所以我们首先需要配置 WebClient,配置 WebClient 的时候,也顺便配置了请求的具体地址(因为在 @HttpExchange 注解中并未指定请求的具体域名端口啥的);同时,对于 HTTP 请求头等如果需要定制,也是通过配置 WebClient 来实现的。
  2. 由于我们前面提供的 ToDoService 是一个接口,所以我们还需要提供一个该接口的实现类,当然这个配置完全是套路化模版化的,这块就没啥好说了。

全部配置完成后,接下来我们就可以在任何需要的地方,直接注入 ToDoService 的实例去使用了,举一个简单的例子小伙伴们参考下:

@SpringBootTest
class ClientApplicationTests {@AutowiredToDoService toDoService;@Testvoid contextLoads() {String hello = toDoService.hello("javaboy");System.out.println("hello = " + hello);}}

好啦,一个简单的例子,你们不妨体验下。

以后,不用 OpenFeign 也能实现声明式服务调用啦~

http://www.yayakq.cn/news/290847/

相关文章:

  • js怎么做网站微信公众号seo
  • 做网站有关机械的图片媒介盒子
  • 营销型网站建设特点摄影网站有哪些功能
  • 怎么自己创立网站北京 网站 公司
  • 哪里有做php网站免费教程户外媒体网站建设免费
  • 德州住房和城乡建设局网站桂林有名网站制作公司
  • 电商网站的功能有哪些天津做网站价格
  • WordPress评级主题网站优化的基本思想
  • 网站开发实现的环境楼盘 东莞网站建设
  • 网站建设公司选择标准服装网站建设目的作用是什么
  • 宜兴做网站哪个好手表网站那个好
  • 常州公诚建设项目管理有限公司官方网站东莞网络优化专业乐云seo
  • 网站建设行业网站国内免费建站平台
  • 购物导购网站开发广西住房与建设厅网站首页
  • 免费做网站网站的软件seo优化设计
  • 成都网站排名石家庄网络销售
  • 学做网站最好的网站沈阳网站排名seo
  • 企业做网站的步骤与做网站注意事项各网站封面尺寸
  • 做网站有什么用wordpress删除作者信息
  • 展示型网站源码简述建设iis网站的基本过程
  • 怎样把网站做的更好网站标签的作用
  • 哈尔滨 做网站华大基因背景调查
  • 旅游类作业网站网站建设费摊销期限
  • 怎么做快法务类似网站郑州市做网站的
  • 英德市住房和城乡建设局手机网站湖南seo公司
  • c2c网站开设店铺凡科建站电话咨询
  • 网站设计的必要性外贸建站哪个最便宜
  • 网站的建设可以起到什么作用莱芜百度贴吧
  • 济南中桥信息做的小语种网站怎么样模板网站与定制网站的优缺点
  • 网站的设计特点有哪些wordpress rest api