我的理解是:
- MD B(消息驱动Bean)通过激活规范连接.
- MD P s(消息驱动POJO)通过连接工厂连接.
IBM的这个图表很有帮助:

对我来说,IBM的这个解释并没有说明差异:
- 连接工厂 - 由应用程序用于连接到消息传递总线.
- 队列 - 由应用程序用于发送和接收消息.
- 激活规范 - 由应用程序的消息驱动bean用于连接到队列和接收消息.
我发现的一个真正的区别是:
会话bean和实体bean [又名MDP]允许您发送JMS消息并同步接收它们,但不是异步接收它们.为避免占用服务器资源,您可能不希望在服务器端组件中使用阻塞同步接收.要异步接收消息,请使用消息驱动的bean [MDB].
所以到目前为止我不满意的清单是:
- 将ActivationSpec与MDB一起使用,将ConnectionFactory与POJO一起使用(但是等等,POJO 也可以使用ActivationSpec吗?)
- MDB以异步方式运行.MBP同步运行.
我的问题是:还有其他差异吗?你能澄清一下这个区别吗?
参考文献: