MDB 的 Java EE 设计模式

标签 java design-patterns jakarta-ee

我们正在设计一个应用程序,MDB 将在其中接收传入消息并执行一系列任务。

其中一些功能类似于 XML 验证,有些则类似于日志记录、MIS 条目等方面。

编辑:

消息类型可能会有所不同,具体取决于排序或引发故障等功能或邮政编码查找等信息服务。这些也因调用者而异,因此调用者 A 的订单与 B 不同,但大部分 XML 结构应该相同。

每个工作都将经历功能性工作单元,例如发件人验证、产品代码验证(如果下订单)、安全检查(基于 IP)、注册到我们的数据库(如果有效)、错误队列(如果无效)等等。

我的问题是,因为我们希望将功能位模块化,以便我们可以构建一个执行功能 A、B、C 的 MDB,另一个 MDB 执行 B、C、D 等功能,具体取决于消息的类型是 - 并基于所有消息类型中常见的任务。

我应该使用什么设计模式?

其次,有没有办法让我在 XML 文件中配置这些函数,以便 MDB 读取 XML 以查看必须执行哪些函数以及按什么顺序执行?这是我们当前考虑的从主 MDB 链接的 Helper POJO 或 session Bean 中模块的替代方案。

最佳答案

@shinynewbike:对于您的问题,最好使用 MDB 来读取消息并确定消息的类型,然后 MDB 可以查阅工厂类以返回实现相同接口(interface)以及 MDB 可以迭代的处理程序列表来调用...基本上是一个命令设计模式。 XML 配置示例:-

<configuration>
<handler name="A" class="A"/>
<handler name="B" class="B"/>
...


<handlers-stack name="stack1">
 <handler ref="A">
 <handler ref="c">
</handlers>

<message type="X" handlers-ref="stack1"/>
<message type="Y" handlers-ref="stack2"/>
</configuration>

关于MDB 的 Java EE 设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6581770/

相关文章:

java - 如何作为方法的结果返回 DataSnapshot 值?

java - 连接池设计

c# - 寻找一种创造性的设计模式

java - xml解析中如何判断Nodelist是否有标签?

spring - 如何知道当前 Web 访问者是否使用 Spring Security 3.0 登录

java - RatpackServer.start 与ratpack-pac4j 相关导致非静态上下文错误

java |使用常量并检查某个值是否等于其中之一

java - 如何处理一种类型的输入和另一种类型的输出

java - JSF2.0 - 在对话框的 onShow 事件期间无法通过 Jquery 检索对话框内的 InputTextArea

java - react native 任务:app:processDebugResources Failed to execute aapt