为什么不使用会话 Bean 来代替消息驱动 Bean?
-
27-09-2019 - |
题
我想知道,为什么不使用会话 Bean 而不是消息驱动 Bean?
如果您可以从 EJB 调用远程方法,那么为什么还要使用消息驱动 Bean(这比会话 Bean 更难开发)来发送/接收消息呢?
消息驱动 Bean 在哪些场景中变得有用?
解决方案
我想知道,为什么不使用会话 Bean 而不是消息驱动 Bean?
嗯,它们的用途不同,消息驱动 bean 允许 Java EE 应用程序异步处理消息。
如果您可以从 EJB 调用远程方法,那么为什么还要使用消息驱动 Bean(这比会话 Bean 更难开发)来发送/接收消息呢?
因为 MDB 为您提供异步和松散耦合,这是您在某些情况下可能想要/需要的:
- 对于长时间运行的工作
- 当资源并不总是可用时
- 当你想要并行处理时
顺便说一句,我个人一直认为 MDB 是最容易开发的 Enterprise Bean。
消息驱动 Bean 在哪些场景中变得有用?
往上看。
也可以看看
其他提示
消息驱动bean听JMS队列的异步强>不像实体/会话bean。
这不会阻止服务器资源作为处理发生只有当消息已到达队列中。
除了Java的论坛和网站的负载,维基百科有一个很好的一套usecases MDB的地方派上用场
的http://en.wikipedia.org/wiki/Enterprise_JavaBean#Message_driven_beans
这两种服务于不同目的。
1),如果你想使用它只是远程方法的用法就用会话Bean
2),但如果性反应/未造成事宜中,但后来的消息是母校给你,然后去JMS,因为它是在创建队列,使工作和设置信息。但性能比较问题将在那里。
如果u需要有只方法使用那么就使用会话bean,因为它是重量轻的豆。和它给良好的性能。
不隶属于 StackOverflow