4.4. verticle の変更点
本セクションでは、verticle の変更点を説明します。
4.4.1. create verticle メソッドの更新 リンクのコピーリンクがクリップボードにコピーされました!
Eclipse Vert.x の以前のリリースでは、VerticleFactory.createVerticle() メソッドが verticle を非同期的にインスタンス化しました。Eclipse Vert.x 4 以降では、メソッドは非同期的に verticle をインスタンス化し、単一の verticle インスタンスではなく、コールバック Callable<Verticle> を返します。この改善により、アプリケーションはこのメソッドを一度呼び出し、複数のインスタンスを作成するために callable を複数回呼び出すことが可能になります。
以下のコードは、Eclipse Vert.x 3.x リリースで verticle がどのようにインスタンス化されたかを示しています。
Verticle createVerticle(String verticleName, ClassLoader classLoader) throws Exception;
以下のコードは、Eclipse Vert.x 4 で verticle がインスタンス化される方法を示しています。
void createVerticle(String verticleName, ClassLoader classLoader, Promise<Callable<Verticle>> promise);
4.4.2. factory クラスおよびメソッドの更新 リンクのコピーリンクがクリップボードにコピーされました!
VerticleFactory クラスが簡素化されました。ファクトリーはネストされたデプロイメントを使用して verticle をデプロイすることができるため、クラスは識別子の初期解決を必要としません。
既存のアプリケーションが factory を使用する場合、Eclipse Vert.x 4 では、予想される完了または失敗時に callable を使用するようにコードを更新できます。呼び出し可能なものは複数回呼び出すことができます。
以下の例は、Eclipse Vert.x 3.x アプリケーションの既存のファクトリーを示しています。
return new MyVerticle();
以下の例は、Eclipse Vert.x 4 で promise を使用するように既存の factory を更新する方法を示しています。
promise.complete(() -> new MyVerticle());
factory がコードをブロックするようにするには、Vertx.executeBlocking() メソッドを使用します。factory がブロックコードを受け取ると、promise を解決し、promise から verticle インスタンスを取得する必要があります。
4.4.3. マルチスレッドのワーカー verticle を削除 リンクのコピーリンクがクリップボードにコピーされました!
マルチスレッドのワーカーの verticle プロイメントオプションが削除されました。この機能は Eclipse Vert.x event-bus とのみ使用できます。HTTP などの他の Eclipse Vert.x コンポーネントはこの機能をサポートしません。
順序のない Vertx.executeBlocking() メソッドを使用して、マルチスレッドワーカーのデプロイメントと同じ機能を実現します。