私はJava EEを見始めたばかりですが、私はコールバックが正確で何が使用されているかを理解するのに苦労しています。EJBコールバックとは何ですか、なぜそれらを必要としますか?
誰でも明確な説明がありますか?私はサイトを見回しましたが、多くの情報を見つけることができませんでした。
私はJava EEを見始めたばかりですが、私はコールバックが正確で何が使用されているかを理解するのに苦労しています。EJBコールバックとは何ですか、なぜそれらを必要としますか?
誰でも明確な説明がありますか?私はサイトを見回しましたが、多くの情報を見つけることができませんでした。
コールバックは、EJB(またはコンテナのライフサイクル)の特定のポイントでカスタムコードを実行する主要な機会です。
だから、EJBがインスタンス化されていますが、前
あなたは、 @PostConstruct
コールバックメソッドを実装します。これで注釈を付けられるメソッドは、JavaEEランタイムへの通知です。そのメソッドは、そのクラスのインスタンスが作成された直後に実行する必要があります。この注釈の一般的な使用方法は、クラスレベルの変数を作成するか、共有リソースを準備することです。
JavaEE仕様では、このような注釈をライフサイクルコールバックとして指定しています。つまり、コンテナは起動時に、利用可能なコールバックを実装する成果物のデプロイメントキットをスキャンすることを知っています。そうすることで、特定のイベントの関心のあるコンポーネント(EJB、CDIコンポーネント、JAX-WS Bean実装)に通知するか、特定のアクションがアプリケーションサーバーで発生したときに特定のメソッドを呼び出すことができます。
(あなたはUIプログラミングの世界から来ている場合は、イベント駆動型プログラミング)コールバックメカニズム自体はコールバックパターンの実装です
参考資料:
正式な定義
コールバックは、エンタープライズBeanのライフサイクルを傍受することが可能な機構です。
実践例
私は、単一の例では、これらのコールバック注釈の有用性を誇示する助けになると思います。 @PreDestroy
コールバックを見てみましょう。 EJBのJBossドキュメントから、次のことが分かります。
PreDestroy - Beanがプールから削除されたり破棄されたりすると呼び出されます。
そして、あなたにはある種のファイルリソースを持つBeanがあります。 Beanが破棄されたときに、そのファイルロックが確実に破棄されるようにする必要があります。まあ、ガベージコレクタがこれらのことを処理するのを待つのは「危険な」習慣であることはわかっています。それがいつ実行されるかはわかりません。
しかし、私たちができることは、Beanが削除されたときに呼び出されるロジックを配置することです。
@PreDestroy
public void cleanUp() {
// Clean up your FileOutputStreams etc.
}
Beanでは、このメソッドはBeanが破棄されたときに実行され、外部からの追加コードは不要です。これにより、Beanが破棄されたときにいつでもリソースがクリーンアップされます。