Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建发布-订阅模式以集成到DAO模式_Java_Design Patterns_Oop_Publish Subscribe - Fatal编程技术网

Java 创建发布-订阅模式以集成到DAO模式

Java 创建发布-订阅模式以集成到DAO模式,java,design-patterns,oop,publish-subscribe,Java,Design Patterns,Oop,Publish Subscribe,根据问题()我想知道 我有一个完全实现的DAO,实体bean只包含getter和setter方法。每个实体都映射到EntityManager 目前,无法通知用户对持久性存储(如数据库)添加/删除/更新的任何更改 我想知道,我将如何实现发布-订阅模式(也称为观察者模式),以便不必扩展我当前的DAO体系结构。我不希望我的实体继承发布者,因为并非所有实体都是可更新的 如果有任何工具/框架/库可供我使用,请告诉我。此外,我根本没有使用任何持久性框架(如Hibernate框架),DAO管理器和工厂完全是我

根据问题()我想知道

我有一个完全实现的DAO,实体bean只包含getter和setter方法。每个实体都映射到EntityManager

目前,无法通知用户对持久性存储(如数据库)添加/删除/更新的任何更改

我想知道,我将如何实现发布-订阅模式(也称为观察者模式),以便不必扩展我当前的DAO体系结构。我不希望我的实体继承发布者,因为并非所有实体都是可更新的

如果有任何工具/框架/库可供我使用,请告诉我。此外,我根本没有使用任何持久性框架(如Hibernate框架),DAO管理器和工厂完全是我从头开始编写的


关于,我的第一个建议是在DAO中嵌入一个可观察的对象。然后你会让你的潜艇看这个物体(我在过去也做过类似的事情)

我的另一个建议是,可以向数据库本身添加触发器。如果你的应用程序之外有任何东西可能会改变你想通知你的sub的DB,这将特别有用


祝你好运。

我正在构建一个类似的概念。。。我不关心所有事件,在项目中,我们希望关心不同的事件。因此,我们正在构建一个模式,其中所有DAO操作都提交给DROOLS Fusion,并基于规则和一些时态推理,它通过通知架构通知侦听器。根据您的需要,架构可以是简单的侦听器、JMS或电子邮件。。。无论什么如果没有条件,只需要关心DAO事件的回调,然后让DAO插入、更新、删除操作将对象提交给侦听器或某种类型的JMS队列

希望这是清楚的


Paul

基本上,发布-订阅模式将用于通知客户产品的更改,无论是添加了新产品还是更新/删除了当前产品。我的bean是getter和setter,所以我希望这样,看到enity就不知道它是被更新还是被创建了。