最近刚初步了解了一下EJB的基本知识。其中EJB有3种:会话Bean,消息驱动Bean以及实体Bean。每种Bean都有自己的特点,先总结前两种
SessionBean(会话bean)
我觉得会话Bean的作用主要是为客户端提供服务。它的分类有两种,有状态和无状态为一种,本地调用和远程调用是一种。有状态与无状态主要是针对EJB,当客户端调用EJB时,无状态每次返回一个新的SessionBean,而有状态每次返回的事同一个SessionBean。本地与远程主要针对传递的参数,远程调用的参数传递是拷贝传递,并且参数必须是可序列化的,而本地调用EJB时,参数传递时传参数的地址,本地客户端与本地EJB共享相同的JVM内存空间。
MessageDrivenBean
消息驱动Bean,它是基于JMS的。它的工作模型有两种:1是p2p模型,服务器负主要管理责任,负责对消息的接受和分发。当消息的接收端无法接受消息时,则将从消息生产者那里接受的消息存入队列,只有当消息的消费者接收到消息,并返回成功信号的时候,服务器才继续发送。这个模型一次只能有一个消费者;2是发布订阅模型,类似于一个聊天室。服务器端只负责分发,只有当消息消费着在线时,他才能订阅生产者发布的消息。这个模型一次可以有多个消息的消费者。