CDIを使用していますが、オブザーバーがイベントを監視した、または監視しなかったことが発信者に通知される方法を知りたいです。そのイベントにオブザーバーが行動しない場合、私は何かをしたいと思います。発信者に通知されるというヒントがあったことを除いて、これがドキュメントのどこにも文書化されていないようです。
ありがとう、
ウォルター
CDIを使用していますが、オブザーバーがイベントを監視した、または監視しなかったことが発信者に通知される方法を知りたいです。そのイベントにオブザーバーが行動しない場合、私は何かをしたいと思います。発信者に通知されるというヒントがあったことを除いて、これがドキュメントのどこにも文書化されていないようです。
ありがとう、
ウォルター
発信者に通知されるとは思いません(実際にはオブザーバーパターンとは異なります)。ただし、次の方法でこれを回避することができます。
イベントオブジェクトの1つにフィールドprivate boolean consumed
を設定しtrue
、それが消費される場合はに設定できます。次に、(イベントは同期的に処理されます)event-producerでその変数をチェックします。
イベントプロデューサーによって監視されるオブザーバーからの新しいイベントの起動
緩い結合の利点を捨てたい場合で、イベントプロデューサーがどれであるかを正確に知っている場合は、@Inject
それをすべてのリスナーに取り込み、メソッドを呼び出させることができます。