用RxJava 改造Vertx Project
更新日期:
早上花点时间修改 wafer-java-session, 引入了RxJava, 保存在新的分支rxjava。
新增Maven 依赖
|
|
代码的修改
MainVerticle
MainVerticle
的父类由io.vertx.core.AbstractVerticle
改为io.vertx.rxjava.core.AbstractVerticle
Verticle Deployment的变化
12Future<String> dbserviceDeployment = Future.future();vertx.deployVerticle(SessionDatabaseVerticle.class.getName(), dbserviceDeployment.completer());修改为:
123Single<String> dbserviceDeployment = vertx.rxDeployVerticle(SessionDatabaseVerticle.class.getName());dbserviceDeployment.flatMap(...).subscribe(id -> startFuture.complete(), startFuture::fail);
Service 相关的改动
接口
SessionDatabaseService
上新增注解@VertxGen
, 两个静态方法create/createProxy 新增注解@GenIgnore
。 新增注解的作用是生成rxjava相关的代理类。SessionDatabaseService.createProxy()
返回类型使用rxjava包里的。123static SessionDatabaseService createProxy(Vertx vertx, String address) {return new SessionDatabaseServiceVertxEBProxy(vertx, address);}修改为:
1234static com.viifly.wafer.database.rxjava.SessionDatabaseService createProxy(Vertx vertx, String address) {return new com.viifly.wafer.database.rxjava.SessionDatabaseService(new SessionDatabaseServiceVertxEBProxy(vertx, address));}对
SessionDatabaseService
的方法调用都改为添加rx前缀的。