深入理解Vert.x Core(4)-Vertx

创建Vertx实例

官方文档上面写着这样一句话

If you’re embedding Vert.x then you simply create an instance as follows:
Vertx vertx = Vertx.vertx();

我们在使用Vert.x的时候一般将应用封装成多个Verticle,指定好MainVerticle并使用官方提供的Launcher,通过fat-jar打包,然后直接使用java -jar -xxx app-fat-jar-1.0.jar 执行,但是嵌入Vert.x使用的时候,比如你写个Main 方法去调用Vert.x的API,这种就属于嵌入使用,这时候就需要手动创建Vert.x instance。

那么在Vertx vertx = Vertx.vertx(); 执行时到底发生了什么呢?

查看Vertx 接口的静态工厂方法,跟Future.future()有些类似

1
2
3
static Vertx vertx() {
return factory.vertx();
}

找到factory的初始化地方
VertxFactory factory = ServiceHelper.loadFactory(VertxFactory.class);
Future一样,也是通过SPI接口暴露服务,找到真正的工厂实现类VertxFactoryImpl,返回的是VertxImpl实例。

VertxImpl初始化

@_@(Unfinished) WIP@_@

------ 本文结束 ------

版权声明


BillyYccc's blog by Billy Yuan is licensed under a Creative Commons BY-NC-SA 4.0 International License.
本文原创于BillyYccc's Blog,转载请注明原作者及出处!