vertx rest 跨域_Vertx编程风格:您的React式Web Companion REST API解释了

vertx rest 跨域

Vertx提供了许多在轻量级环境中进行编程的选项,例如node.js。 但是,对于新用户来说,选择采用哪种方法来创建REST API几乎不会造成混淆。

在vertx中进行编程时,可以采用不同的模型。 下面通过易于理解的图表进行说明。

PS – vertx编程的核心是对vertx对象的引用, 该对象可以是静态获取的,也可以是具有继承AbstractVerticle类的顶点的继承成员。 现在您知道了在哪里获取vertx对象。 让我们进一步潜水。

vertx中不同的编程模型分为以下几类,我为每个模型添加了一些有趣的名称:):-

  1. 面对面的方法
  2. 媒人方法
  3. 配对教练法

模型1 – FaceToFace方法

如图所示,在此模型中,客户端以http请求的形式发送事件,这些事件通过Router缓冲到服务器verticle。 路由器可以通过使用获得
Router.router(顶点)

现在,我们可以配置路由器以处理http请求。 小心,路由器处理程序是同步调用。 要运行阻止调用或任何异步操作,请使用executeBlocking或采用Model#2

模型2 –媒人方法

顾名思义,您不能直接与其他人交谈,您将不得不经过约会比赛制作者,即事件总线。 当您在不同的计算机上运行许多微服务或要在一台计算机上模块化代码时,此模型很有用。 消息具有标头,正文,地址,并且通过调用message.reply(Object),接收方顶点可以将响应发送回发送方。

模式3:配对教练方法

在这里,媒人也将成为一名教练,他将帮助您如何连接其他顶点。 它通过代码生成来帮助将服务与事件总线绑定,从而使调用服务方法更加容易。

主要思想是服务名称服务(java接口)以及将作为REST API公开的相应实现服务实现 。 但是在vertx中不可能像在Spring Web或其他框架中那样直接。 为了公开Service接口,您需要创建AsyncService接口及其实现,该接口将模仿Service方法,但是签名几乎没有什么不同。

示例:在服务界面中,您可以使用以下方法:

public User getUser(final String verificationToken) {...}

在异步服务界面中,外观类似,

void getUser(String verificationToken, Handler<AsyncResult<User>> resultHandler)

在这里,我们以vertx Handler的形式向该方法添加了一个额外的参数,该参数返回一个AsyncResult,从而可以进行非阻塞调用。 同样,返回类型为void。 可以使用resultHandler回调从客户端获取结果。

请在下方留下你的意见。

编码愉快!

翻译自: https://www.javacodegeeks.com/2018/03/vertx-programming-style-your-reactive-web-companion-rest-api-explained.html

vertx rest 跨域

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

输出节点位移_绝对值信号的编码器有哪些信号输出(一、二)

绝对值信号的编码器有哪些信号输出&#xff08;一、二&#xff09;之前介绍过很多次拉线位移传感器输出是有两大类的&#xff0c;数字信号输出和模拟量信号输出&#xff0c;而数字信号输出还分为增量型脉冲信号输出和绝对值信号输出&#xff0c;今天就系统的介绍一下绝对值信号…

vim 中的 quickfix 指令

用 quickfix 可以快速修改编译错误。 运行了 make 命令编译之后&#xff0c;如果有编译错误 Vim 会以列表形式把编译错误列出&#xff0c;并使用 quickfix 工具快速帮你定位出错的行。 指令说明cc显示编译错误的详细信息,这些信息显示在状态行里cn下一个编译错误cp前一个编译…

Python第三方库的安装,升级以及版本查看

方法&#xff1a;通过电脑的cmd命令行来进行python第三方库的安装&#xff0c;升级以及版本查看 安装和升级pip 安装pip方法1 在cmd命令行输入以下命令&#xff1a; python -m ensurepip #当提示不存在pip时使用这行代码进行安装安装pip方法2 在终端输入以下命令&#xf…

混合多云架构_混合多云每个人都应避免的3个陷阱(第1部分)

混合多云架构每天都在肆意宣传云&#xff0c;但每个人都应避免三个陷阱。 从云&#xff0c;混合云到混合多云&#xff0c;您都被告知这是确保业务数字化未来的一种方式。 您必须做出的这些选择不会排除提高客户体验和敏捷交付这些应用程序的日常工作。 让我们开始一段旅程&am…

vim 下的 ex 指令(底行命令模式下)

文章目录 (一)复制(二)文档光标移动(三)删除(四)粘贴(五)保存/退出(六)另存为文件/选取内容另存文件(七)查找/搜索字符(八)搜索指令 vimgrep(九)使用搜索指令 grep(十)文本行移动(十一)匹配模式替换(十二)显示行号(十三)normal 命令(十四)文件信息…

datastax.repo_使用Datastax Java驱动程序与Cassandra进行交互

datastax.repo今天&#xff0c;我这次返回了更多的Cassandra和Java集成&#xff0c;重点是使用Datastax Java驱动程序&#xff0c;而不是我已经写了很多文章的Spring Data Cassandra。 Spring Data实际上使用了Datastax驱动程序来与Cassandra进行交互&#xff0c;但是在它之上还…

beanshell断言_JMeter使用BeanShell断言

BeanShell简介BeanShell是使用Java语法的一套脚本语言&#xff0c;在JMeter的多种组件中都有BeanShell的身影&#xff0c;如&#xff1a;定时器&#xff1a;BeanShell Timer前置处理器&#xff1a;BeanShell PreProcessor采样器&#xff1a;BeanShell Sampler后置处理器&#x…

Mobaxterm常用的指令(基于linux)

列出所有的环境(3种方法) conda env list conda info --envs conda info -e创建虚拟环境(默认anaconda3/envs路径) conda create -n megumi python3.8.5 #megumi为环境名称,#3.8.5是安装python的版本激活环境(2种方法) source activate 环境名 conda activate 环境名退出环…

junit mockito_使用JUnit 5在Mockito中方便地进行模拟–官方方式

junit mockito从版本2.17.0开始&#xff0c;如果使用了JUnit 5&#xff0c; Mockito提供了官方&#xff08;内置&#xff09;支持来管理模拟生命周期。 入门 为了利用集成的优势&#xff0c;需要在JUnit 5的junit-platform-engine旁边添加Mockito的mockito-junit-jupiter依赖项…

正则表达式中的量词(限定符)含义的准确理解

量词准确理解?前面的元素&#xff08;pattern/子表达式&#xff09;匹配 0 次或者 1 次&#xff1b;出现 0 次或者 1 次。“次”改成“个”也行*前面的元素匹配大于等于 0 个前面的元素匹配大于等于 1 个{5}前面的元素匹配 5 个{2,6}前面的元素匹配 2 个到 6 个

docker初识_初识 docker 搭建自己的开发环境

换了一台设备&#xff0c;程序猿嘛第一件事肯定是先把开发环境搭建起来&#xff0c;以前为了方便都是搞的集成环境&#xff0c;这次准备下载集成环境的时候&#xff0c;突然想起 docker 这个东西&#xff0c;在下虽然了解一些概念性的东西但一直为曾实践。人嘛&#xff0c;没有…

PyTorch中使用指定的GPU

PyTorch默认使用从0开始的GPU&#xff0c;如果GPU0正在运行程序&#xff0c;需要指定其他GPU。 有如下两种方法来指定需要使用的GPU。 1.类似tensorflow指定GPU的方式&#xff0c;使用CUDA_VISIBLE_DEVICES。 1.1 直接终端中设定&#xff1a; CUDA_VISIBLE_DEVICES1 python…

jvm运行时类加载机制_JVM体系结构:JVM类加载器和运行时数据区

jvm运行时类加载机制各位读者好&#xff01; 在JVM系列的上一篇文章中&#xff0c;开发人员了解了Java虚拟机&#xff08;JVM&#xff09;及其体系结构。 本教程将帮助开发人员正确回答以下主题的问题&#xff1a; ClassLoader子系统 运行时数据区 1.简介 在继续之前&#x…

括号的分类

括号名称符号小括号&#xff08;parentheses&#xff0c;又称圆括号、括弧&#xff09;( )中括号&#xff08;square brackets&#xff0c;又称方括号&#xff09;[ ]大括号&#xff08;curly brackets&#xff0c; 又称花括号&#xff09;{ }六角括号〔 〕&#xff0c;中文才有…

python读取和存入json文件

将内容存入json文件 import json filename"C:/Users/13451/Desktop/captions_train.json" with open(filename, w) as j: json.dump(word_map, j)读取json文件中的内容 import json with open(filename,r) as f:x json.load(f) print(x)其中open函数的第二个参数&…

android 前台服务自定义布局不显示_Android前台服务通知未显示

我正在尝试启动前台服务.我收到通知,该服务确实启动但通知始终被抑制.我仔细检查了应用是否允许在我的设备上的应用信息中显示通知.这是我的代码&#xff1a;private void showNotification() {Intent notificationIntent new Intent(this, MainActivity.class);notificationI…

java技术专家学习路线图_向Java最佳专家的全球专家学习Java

java技术专家学习路线图Java with the Best Virtual Conference是您学习微服务&#xff0c;Java 9&#xff0c;Kubernetes以及其他Java的指南&#xff01; 将于4月17日至18日收听&#xff0c;收听来自Pivotal&#xff0c;RedHat&#xff0c;Microsoft&#xff0c;Oracle和Netfl…

vim 编程常用的指令和快捷键

文章目录移动光标修改、剪切或复制配对符之间的内容ctagscscopegtags编译快速修改窗口自动补全多行缩进缩出折叠移动光标 命令说明gd跳转到局部变量的定义处gD跳转到全局变量的定义处&#xff0c;从当前文件开头开始搜索g;上一个修改过的地方g,下一个修改过的地方[[跳转到上一…

css 获取屏幕宽度_设备像素、设备独立像素、CSS像素、分辨率、PPI、devicePixelRatio 的区别...

设备像素 (device pixels)也称为物理像素&#xff0c;显示器的最小物理单位。这里需要注意&#xff0c;一个像素并不一定是一个小正方形区块&#xff0c;也没有标准的宽高&#xff0c;只是用于显示丰富色彩的一个“点”而已。可以参考公园里的景观变色彩灯&#xff0c;一个彩灯…

shell 脚本中特殊变量

特殊变量含义$0这个程式的执行名字$n这个程式的第n个参数值&#xff0c;n1…9$*这个程式的所有参数$#这个程式的参数个数$$这个程式的PID&#xff08;脚本运行的当前进程ID号&#xff09;$!执行上一个背景指令的PID&#xff08;后台运行的最后一个进程的进程ID号&#xff09;$?…