我正在尝试开发一个数据库服务代理并使用一个扩展 io.vertx.reactivex.core.AbstractVerticle 的 Verticle,以便我可以在数据库调用周围使用 rxJava 语义。问题是,当我编码生成服务代理时,我得到了这个:
ServiceVertxEBProxy.java:[37,1] a type with the same simple name is already defined by the single-type-import of io.vertx.core.Vertx
数据库服务负责处理共享的 dbclient,我正在这样做:
public Single<SQLConnection> getConnection()
{
JDBCClient dbClient = JDBCClient.createShared( vertx, CONFIG, DATASOURCE );
return dbClient.rxGetConnection().flatMap( conn -> {
Single<SQLConnection> connectionSingle = Single.just( conn );
return connectionSingle.doFinally( conn::close );
} );
}
是否可以使用@ProxyGen 创建一个在服务中引用 rxJava 的代理客户端?
作为参考,该接口声明了工厂方法以通过遵循 vertx.io 文档来实例化服务。
import io.vertx.reactivex.core.Vertx;
@ProxyGen
public interface ChatDbService
{
static ChatDbService create( Vertx vertx )
{
return new ChatDbServiceImpl( vertx );
}
static ChatDbService createProxy( Vertx vertx, String address )
{
return new ChatDbServiceVertxEBProxy( vertx.getDelegate(), address );
}
}
帮助和洞察力将不胜感激。