Vert.x - Java 的新领土
在用Node.js写前后端,写了N天之后,有点感叹。前后台的交互方式那么多,Java又能分到多少的领土.虽然说,Java今年是第一,去年是第二,近几年也许很难掉出前五。但是,总觉得Java就像一个又大又空洞老旧城市,路过时,总会想有一天他跟不上时代的效率,会被夷为平地。
这几天,Node写起来真的非常的舒服。我可以尽可能的缩小服务器的消耗(类操作系统),增大业务的运行占有率,让我想起了当初使用MINA,使用简单的socket自定义服务器的感觉,非常的舒服。
Node所用的Asynchronous、Event-driven、Non-blocking I/O,建立快速、高延展性应用程序式的程序。
在逛JDK第八城市的时候,惊奇的发现了Vert.x这个只建在JDK第八城市的领地。
彷佛打开了一个新世界的大门。
//Vert.x片段
/**
* 为了使用Vert.x 需要扩展Verticle类和重写start().
*/
public void start() {
//Handler 所有处理器的基类
Vert.x
.createHttpServer()
.requestHandler(new Handler<HttpServerRequest>() {
//HttpServerRequest 代表http请求
public void handle(HttpServerRequest request) {
String file = request.path().equals("/") ? "index.html" : request.path();
request
.response()
.sendFile("webroot/" + file);
}
}).listen(8080);
}
//node片段
var http=require('http')//加载的模块
//Node服务器是长期运行的进程
//创建一个服务
http.createServer(function (req,res) {//创建服务
//将响应数据写到socket中
res.write('<h1>Hello World</h1>');//进行操作
res.end();//申明服务结束
})listen(3000);//加上监听端口
这么相似,也那怪被称为Java版的node了。简单看了一下Vert.x的结构,发现他好像就是建立在MINA的兄弟全异步Java服务器Netty之上。那也就是一层封装?希望现在版本是3,以后的版本不要越发臃肿。