2016-06-26 7 views

答えて

0

コールバックは、EJB(またはコンテナのライフサイクル)の特定のポイントでカスタムコードを実行する主要な機会です。

だから、EJBがインスタンス化されていますが、前

  • はそれが開始さ後、たとえば、あなたが特定のフィールドやコンポーネント

    内部
    • EJBを初期化したい
    • を取りますサービスリクエストに

    あなたは、 @PostConstructコールバックメソッドを実装します。これで注釈を付けられるメソッドは、JavaEEランタイムへの通知です。そのメソッドは、そのクラスのインスタンスが作成された直後に実行する必要があります。この注釈の一般的な使用方法は、クラスレベルの変数を作成するか、共有リソースを準備することです。

    JavaEE仕様では、このような注釈をライフサイクルコールバックとして指定しています。つまり、コンテナは起動時に、利用可能なコールバックを実装する成果物のデプロイメントキットをスキャンすることを知っています。そうすることで、特定のイベントの関心のあるコンポーネント(EJB、CDIコンポーネント、JAX-WS Bean実装)に通知するか、特定のアクションがアプリケーションサーバーで発生したときに特定のメソッドを呼び出すことができます。

    (あなたはUIプログラミングの世界から来ている場合は、イベント駆動型プログラミング)コールバックメカニズム自体はコールバックパターンの実装です

    参考資料:

  • 0

    正式な定義

    コールバックは、エンタープライズBeanのライフサイクルを傍受することが可能な機構です。

    実践例

    私は、単一の例では、これらのコールバック注釈の有用性を誇示する助けになると思います。 @PreDestroyコールバックを見てみましょう。 EJBのJBossドキュメントから、次のことが分かります。

    PreDestroy - Beanがプールから削除されたり破棄されたりすると呼び出されます。

    そして、あなたにはある種のファイルリソースを持つBeanがあります。 Beanが破棄されたときに、そのファイルロックが確実に破棄されるようにする必要があります。まあ、ガベージコレクタがこれらのことを処理するのを待つのは「危険な」習慣であることはわかっています。それがいつ実行されるかはわかりません。

    しかし、私たちができることは、Beanが削除されたときに呼び出されるロジックを配置することです。

    @PreDestroy 
    public void cleanUp() { 
        // Clean up your FileOutputStreams etc. 
    } 
    

    Beanでは、このメソッドはBeanが破棄されたときに実行され、外部からの追加コードは不要です。これにより、Beanが破棄されたときにいつでもリソースがクリーンアップされます。

    関連する問題