2016-12-05 4 views
0

は、非同期メソッド呼び出しのコールバックで作成された豆を、追加する必要があります全体のアプリケーション。追加のSpring Beanは、非同期的に私のGrailsの3.1.14 Iアプリで

これを達成するための適切な方法は何ですか?

私はStaticApplicationContextでそれを行うか、それとも何か壊れますか?

もう1つの方法は、 "container-bean"を使用し、非同期メソッドの完了時にそれを適切に設定することですが、それは醜いものです。

答えて

0

InitializingBeanインターフェイスを使用して、アプリケーションコンテキストイベントに基づいてプロパティを設定するラッパーBeanを作成できます。

class VertxWrapper implements InitializingBean { 

    Vertx vertx 

    void afterPropertiesSet() throws Exception { 
     Vertx.clusteredVertx([:]){ AsyncResult<Vertx> res -> 
      this.vertx = res.result() // << this should be injected into 
     } 
    } 
    } 
} 

そして、単にそれに注入vertxWrapperを持つ任意の豆からvertxWrapper.vertxにアクセスします。

関連する問題