我想知道,为什么不使用Session Beans而不是Message Driven Beans?
如果你可以从EJB调用远程方法,那么为什么要使用Message Driven Beans(比会话bean更难开发)来发送/接收消息呢?
Message Driven Beans在哪些场景中变得有用?
答案 0 :(得分:12)
我想知道,为什么不使用Session Beans而不是Message Driven Beans?
嗯,它们没有用于同一目的,消息驱动的bean允许Java EE应用程序异步处理消息。
如果你可以从EJB调用远程方法,那么为什么要使用Message Driven Beans(比会话bean更难开发)来发送/接收消息呢?
因为MDB会为您提供异步和松耦合,这在某些情况下可能是您需要/需要的:
顺便说一句,我个人总是发现MDB是最容易开发的企业Bean。
Message Driven Beans在哪些场景中变得有用?
见上文。
答案 1 :(得分:2)
与实体/会话bean不同,消息驱动的bean以异步方式侦听JMS队列 。
这不会阻止服务器资源,因为只有当消息到达队列时才会发生处理。
除了大量的Java论坛和网站之外,维基百科还有一套很好的用例,其中MDB可以派上用场
http://en.wikipedia.org/wiki/Enterprise_JavaBean#Message_driven_beans
答案 2 :(得分:2)
两者都有不同的目的。
1)如果你想将它用于远程方法,那么只需使用Session Bean
2)但是如果response / result不是maters但是后面的消息对你来说是主要的,那么就去创建队列以使其工作并设置消息。但会出现性能问题。
如果你需要只使用方法,那么只使用Session bean,因为它是轻量级bean。它表现良好。