我们会发现,前面写的两个程序,无论访问什么地址,都是可以访问到Hello from Vert.x,这显然不是我们想要的结果,也不是我们之后所需要用到的。
我们需要配置指定路由,通过路由进行访问接口,这样才是我们想要结果。
1、同样方式复制出RouterVerticle文件。
package vertx;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Promise;
import io.vertx.ext.web.Router;
public class RouterVerticle extends AbstractVerticle {
//第一步 声明Router
Router router;
@Override
public void start(Promise<Void> startPromise) throws Exception {
//第二步 初始化Router
router = Router.router(vertx);
//第三步 配置Router解析url
router.route("/").handler(
req -> {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}
);
//第四步 将Router与vertx HttpServer 绑定
vertx.createHttpServer().requestHandler(router).listen(8888, http -> {
if (http.succeeded()) {
startPromise.complete();
System.out.println("HTTP server started on port 8888");
} else {
startPromise.fail(http.cause());
}
});
}
}2、启动测试
这样我们再访问根路径的时候,就可以访问到Hello from Vert.x。

访问其他路径的时候,就会出现Resource not found。

将router改为get请求
router.get("/").handler(
req -> {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}
);
将router改为post请求
router.post("/").handler(
req -> {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}
);