MDB和JMS之间的区别

时间:2011-01-15 13:35:38

标签: java-ee ejb jms ejb-3.1

2 个答案:

答案 0 :(得分:12)

JMS和消息驱动的bean不是/或选择,两者是互补的。

JMS是用于传递消息的API和技术。消息驱动Bean(MDB)是一种API,用于将JMS消息作为EJB样式的事件接收。有许多处理JMS消息的方法,MDB只是其中之一。

来自JavaEE tutorial

  

消息驱动的bean可以实现任何消息传递类型。最常见的是,它们实现了Java消息服务(JMS)技术。

顺便说一下,你的主题是MBean - 这完全不同(指的是JMX API),与JMS无关。

答案 1 :(得分:2)

JMS是Java Messaging Service规范;它是Java EE中队列和主题的API。

我熟悉的MDB通常实现javax.jms.MessageListener接口,将主题或队列侦听器封装到由Java EE容器管理的组件中。

但是在评论中我已经指出这不是一个要求; MDB可以用作Java Connector API的一部分。