使用Vert.x + SpringBoot编写业务系统

这一期文章主要为大家介绍如何将Vert.x与SpringBoot结合起来编写最最最常见的业务系统,即数据库增删改查。

谈两句SpringBoot

SpringBoot大家都很熟了,一个快速开发框架,其最大的特点是可将Spring应用打成可执行jar包,从而不再依赖外部容器,如Tomcat。可能绝大多数人在使用SpringBoot时一定离不了嵌入式Tomcat, 从而造成了一想到SpringBoot就会将其与SpringMVC联系在一起的现象。其实我们可以只使用SpringBoot的一键执行和提供Spring环境的特性,Web层直接替换成Vert.x. 此外,一些短时执行的任务也可以用这种方式来写,简直不能更爽。

Vertx-web的请求路由

上一篇写的Http Server是没有路由的,所有的请求都会由同一个Handler处理。如果是只提供一个简单的API服务这样是没有问题的,但在实际业务系统中一般接口数量都比较多,这时候就需要一个路由组件来将不同的Path, Method映射到不同的handler上,使用方法如下:

HttpServer server = vertx.createHttpServer();
        Router router = Router.router(vertx); // (0)
        router.route("/a/b/c/path") // (1)
                .handler(BodyHandler.create()) // (2)
                .handler(demoHandler) // (3)
                .blockingHandler(blockHandler); // (4)
        
        server.requestHandler(router::accept) // (5)
                .listen(8080);

(0): 构造一个Router。

(1): 添加对/a/b/c/path的路由。这里也可以使用重载的带有HTTP Method的方法。

(2): 当收到path为/a/b/c/path的请求时,先调用BodyHandler。这里BodyHandler是Vert.x提供的处理器,只有在请求处理链路的开头添加了此Handler我们才能在后续的Handler中拿到请求体。

(3): 添加我们的业务处理器, 此处理器会在NIO线程中执行。

(4): 添加含有阻塞调用的业务处理器,此处理器会在worker线程池中执行,不会block NIO线程。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值