创建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()
有些类似123static Vertx vertx() { return factory.vertx();}
找到factory
的初始化地方VertxFactory factory = ServiceHelper.loadFactory(VertxFactory.class);
和Future
一样,也是通过SPI接口暴露服务,找到真正的工厂实现类VertxFactoryImpl
,返回的是VertxImpl
实例。