Java 如何为webapp创建客户端通知服务,还是应该使用Observer模式?

Java 如何为webapp创建客户端通知服务,还是应该使用Observer模式?,java,design-patterns,dao,observer-pattern,Java,Design Patterns,Dao,Observer Pattern,我有一个完全实现的DAO,我的所有bean都继承一个实体对象。 现在,我想创建一个客户端通知系统,当用户在持久性存储中创建/更新/删除实体时,会通过电子邮件自动向客户端发送通知 我有一个DAO管理器,它使用工厂模式根据实体类型向我返回DAO的管理器 e.g EntityManager manager = EntityManagerFactory.createEntityManager(Product.class); 每个管理器都有一个create()、remove()、update()方法 我

我有一个完全实现的DAO,我的所有bean都继承一个实体对象。 现在,我想创建一个客户端通知系统,当用户在持久性存储中创建/更新/删除实体时,会通过电子邮件自动向客户端发送通知

我有一个DAO管理器,它使用工厂模式根据实体类型向我返回DAO的管理器

e.g EntityManager manager = EntityManagerFactory.createEntityManager(Product.class);
每个管理器都有一个create()、remove()、update()方法

我的第一个想法是让我的所有实体管理器继承一个观察者接口,在函数调用(创建、删除、更新等)之后发送一个通知

这是个明智的主意吗?如果没有,我该如何向客户发送通知

我正在运行JBoss5或Tomcat6(或者两者都运行,以便于部署)和ApacheStruts(尽管我不明白我提到它的原因)


提前感谢。

考虑使用电子邮件,让您的实体经理幸福地不知道需要通知谁以及如何向他们发送电子邮件。这种方法将改进对现有管理器代码和您打算编写的消息传递代码的维护,如果您需要编写新的实体管理器,将您的实体存储在JCR中,或者通过web服务等传输它们,那么将获得巨大的回报。

PS。我已经检查了此注释()。我应该让我的刀线程安全吗?它基本上是我为客户端创建的一个在线商店。您使用什么持久性框架?没有,我冒昧地编写了自己的DAO,而不是使用Hibernate之类的框架。请注意,JPA(和Hibernate)已经内置了
EntityListeners
,并为此提供了回调方法。我读到了相关内容。我可以将Hibernate的EntityListeners集成到我的DAO中吗?好的,有趣的建议。在这种情况下,我应该如何使用装饰器呢?我知道你在说什么,但是我是否可以在不改变结构的情况下添加它?如果(1)使用IoC容器或(2)使用某种风格的工厂模式来定义系统中使用的EntityManager impl,则可以在不改变现有代码的情况下添加它。