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:modifies 声明两个实例。但无论我做什么,都只附加了一个监听器实例。

我非常想将同一类的多个不同配置的实例附加为事件观察者。而且还没有找到任何解决方案...

4

1 回答 1

0

如果您发布课程,而不是Seam 3 xml-configuration,可能对每个人都更容易...... :-)

您正在搜索的是一个通用邮件程序,它监听不同的事件并根据事件发送不同的电子邮件,对吧?我不确定我是否看到了要求的通用部分,您可能希望在您的问题中添加更多信息以明确这一点。

相反,我建议使用一个,它监听一个使用不同限定符(, )注释MailSender的单个事件(例如)。我会在一个地方从完整的电子邮件逻辑开始——如果它变得太复杂,你仍然可以将它重构为更多的 bean。RegistrationMailEvent@Admin@User

这符合您的需求吗?

哦,顺便说一句:事件是同步的- 所以你必须知道你正在停止执行线程,直到事件处理完成。如果邮件服务器速度较慢,则可能不希望这样做。

于 2012-06-20T04:16:49.613 回答