Vert.x系列(零),开篇,认识Vert.x并创建一个Http服务

目录



正文


1、介绍

Vert.x 是 Netty 的最佳实践之一,也是目前最快的Java框架。

如果对Spring的配置式编程已经厌烦,那么欢迎拥抱 Vert.x,再次享受成为开发人员的乐趣。

Vert.x 支持与多种语言一起使用,Vert.x3支持Java、Kotlin、JavaScript、Groovy、Ruby和Scala。如果你喜欢的是Ruby、Python、Clojure、Ceylon这些语言就要选择Vert.x2了。

Web开发、REST API、RPC、IoT、微服务这些应用场景Vert.x都适用。

2、创建一个简单的Http服务

使用Maven构建项目,在pom文件中引用vertx-web依赖。

2.1、创建Maven项目

mvn archetype:generate

这条命令是用来创建一个maven项目的,按提示填写groupId、artifactId、packageName等信息。笔者的groupId和packageName是com.javafm.vertx ,artifactId是SimpleHttpServer。然后在idea中打开这个项目。

2.2、在pom.xml中加入vertx-web依赖

<dependency>
 <groupId>io.vertx</groupId>
 <artifactId>vertx-web</artifactId>
 <version>3.8.5</version>
</dependency>

2.3、创建一个SimpleHttpServerVerticle类,继承AbstractVerticle,重写start()方法

package com.javafm.vertx;

import io.vertx.core.AbstractVerticle;
import io.vertx.core.http.HttpServer;
import io.vertx.core.http.HttpServerResponse;

public class SimpleHttpServerVerticle extends AbstractVerticle {
    @Override
    public void start() throws Exception {
        HttpServer server = vertx.createHttpServer();

        server.requestHandler(request -> {
            HttpServerResponse response = request.response();
            response.putHeader("content-type", "text/plain");
            response.end("Hello World!");
        });

        server.listen(8080);
    }
}

接着在App类中发布SimpleHttpServerVerticle

package com.javafm.vertx;

import io.vertx.core.Vertx;

public class App {
    public static void main(String[] args) {
        Vertx.vertx().deployVerticle(new SimpleHttpServerVerticle());
    }
}

2.4、在App类中,右键运行http服务,在浏览器打开http://localhost:8080,可以看到下图界面,表示http服务创建成功了。

2.5、代码解释

核心代码在SimpleHttpServerVerticle中,这个类继承了AbstractVerticle,在Vert.x中一切皆是Verticle。每一个Verticle都是一个独立的单元。 每个Verticle都需要通过deployVerticle方法部署。先暂时这样理解,随着代码越写越多,到时会有更深刻的领悟。

注意server.requestHandler(),表示将服务监听所在端口的所有http请求都路由到这个匿名函数中处理。目前内部没有任何逻辑,只是简单的返回了一个字符串。

看着上面的代码是不是感觉Vert.x写Http服务与Spring的大不同之处。跟着笔者一步步探索Vert.x应用开发。

本节源代码:https://gitee.com/dev-tang/learning-vertx/tree/learn-01/

本博客采用 知识共享署名-禁止演绎 4.0 国际许可协议 进行许可

本文标题:Vert.x系列(零),开篇,认识Vert.x并创建一个Http服务

本文地址:https://jizhong.plus/post/2020/03/vert.x-0.html