我想知道,为什么不使用 Session Beans 而不是 Message Driven Beans ?
如果您可以从 EJB 调用远程方法,那么为什么还要使用消息驱动 Bean(它比会话 bean 更难开发)来发送/接收消息?
消息驱动 Bean 在哪些情况下有用?
我想知道,为什么不使用 Session Beans 而不是 Message Driven Beans ?
如果您可以从 EJB 调用远程方法,那么为什么还要使用消息驱动 Bean(它比会话 bean 更难开发)来发送/接收消息?
消息驱动 Bean 在哪些情况下有用?
我想知道,为什么不使用 Session Beans 而不是 Message Driven Beans ?
嗯,它们的用途不同,消息驱动的 bean 允许 Java EE 应用程序异步处理消息。
如果您可以从 EJB 调用远程方法,那么为什么还要使用消息驱动 Bean(它比会话 bean 更难开发)来发送/接收消息?
因为 MDB 为您提供了异步性和松散耦合,这是您在某些情况下可能想要/需要的:
顺便说一句,我个人一直认为 MDB 是最容易开发的 Enterprise Bean。
消息驱动 Bean 在哪些情况下有用?
看上面。
两者都有不同的用途。
1)如果您只想将它用于远程方法使用,那么只需使用 Session Bean
2)但是如果响应/结果不重要,但后面的消息对您很重要,那么请使用 JMS,因为它正在创建队列以使其工作并设置消息。但性能问题将存在。
如果您只需要使用方法,那么只需使用会话 bean,因为它是轻量级 bean。它提供了良好的性能。
与实体/会话 bean 不同,消息驱动 bean异步侦听 JMS 队列。
这不会阻塞服务器资源,因为仅当消息到达队列时才会进行处理。
除了大量的 Java 论坛和网站之外,维基百科还有一组很好的用例,MDB 可以派上用场
http://en.wikipedia.org/wiki/Enterprise_JavaBean#Message_driven_beans