0

イベントオブザーバークラスがあります。一般的なメーラーです。イベントを受け取り、そのメールを作成します。このオブザーバークラスの複数のインスタンスを次のように作成したいと思います。

<m:Mailer
resource="WEB-INF/email/adminConfirmation.ftl" 
emailNotificationAddress="admin@xxxx.com">
    <order:onOrderChange>
        <s:parameters>
        <order:StateChange>
           <s:Observes />
        </order:StateChange>
        </s:parameters>
    </order:onOrderChange>
</m:Mailer>
<m:Mailer
resource="WEB-INF/email/userConfirmation.ftl" 
emailNotificationAddress="${order.user.email}">
    <order:onOrderChange>
        <s:parameters>
        <order:StateChange>
           <s:Observes />
        </order:StateChange>
        </s:parameters>
    </order:onOrderChange>
</m:Mailer>

さらに、アノテーションベースの情報を継承したいので、毎回このorder:onOrderChangeメソッドを宣言する必要はありません。s:modifyで2つのインスタンスを宣言しようとしました。しかし、私が何をしても、接続されているリスナーインスタンスは1つだけです。

イベントオブザーバーと同じクラスの、異なる構成の複数のインスタンスを必死にアタッチしたいと思います。そして、まだ解決策を見つけていません...

4

1 に答える 1

0

Seam 3 xml-configuration ではなくクラスを投稿すると、誰にとっても簡単になるかもしれません... :-)

あなたが探しているのは、さまざまなイベントをリッスンし、イベントに応じてさまざまなメールを送信する汎用メーラーですよね? 要件の一般的な部分が表示されているかどうかはわかりません。それを明確にするために、質問にさらに情報を追加することをお勧めします。

代わりに私がお勧めするのは、異なる修飾子 ( , )で注釈が付けられMailSenderた単一のイベント (例: ) をリッスンする単一の , を持つことです。完全な電子メール ロジックを 1 か所にまとめることから始めます。これが複雑になりすぎた場合は、さらに Bean にリファクタリングできます。RegistrationMailEvent@Admin@User

これはあなたのニーズに合っていますか?

ああ、ところで:イベントは同期的です。そのため、イベント処理が完了するまで実行スレッドを停止していることに注意する必要があります。低速のメール サーバーの場合、これは望ましくない場合があります。

于 2012-06-20T04:16:49.613 に答える