有状态会话Bean(2) √以购物网站为例,顾客需要把商品添加到购物篮中, 每次往购物篮中添加新商品,都会触发新的请求操作, Bean必须保留用户的状态 √但是,如果客户长时间没有进行下一步动作,BB容器 为了节省资源,将调用Bean实例的回调方法,释放该 实例占有的资源,将状态序列化,然后挂起到永久存 储源上。需要时再反序列化并激活状态
ü以购物网站为例,顾客需要把商品添加到购物篮中, 每次往购物篮中添加新商品,都会触发新的请求操作, Bean必须保留用户的状态 ü但是,如果客户长时间没有进行下一步动作,EJB容器 为了节省资源,将调用Bean实例的回调方法,释放该 实例占有的资源,将状态序列化,然后挂起到永久存 储源上。需要时再反序列化并激活状态 有状态会话Bean(2)
有状态会话Bean生命周期 「Bean实例 不存在 超时 实例化 人个下文可选) 达到实例池上「选) 客户调用调P限或客户要求挂起 业务方法 调用 PostActivate 就绪态 (可选)
有状态会话Bean生命周期 Bean实例 不存在 就绪态 挂起 1. 实例化新的实例 2. 注入上下文(可选) 3. 初始化(可选) 客户调用 业务方法 调用PrePassivate (可选) 调用PostActivate (可选) 超时 达到实例池上 限或客户要求
消息驱动Bean(1) √实现某种类型的消息监听接口 √不存在远程或本地业务接口,客户不能直接与其交互, 只能借助消息提供者(例如MS= Java Message Service) 的API √无状态 √单线程,单个实例仅能处理单个消息 √支持异步消息通信和持久化订阅(即使发布消息时订阅 者不处于运行态,也能够收到消息)
ü实现某种类型的消息监听接口 ü不存在远程或本地业务接口,客户不能直接与其交互, 只能借助消息提供者(例如JMS = Java Message Service) 的API ü无状态 ü单线程,单个实例仅能处理单个消息 ü支持异步消息通信和持久化订阅(即使发布消息时订阅 者不处于运行态,也能够收到消息) 消息驱动Bean(1)
消息驱动Bean(2) ●用户调用基于MS的消自动Dan EB服务器 「发送 消息 消息驱动 Bean实例池 客户 JMS 目的地 Bean实例
用户调用基于JMS的消息驱动Bean 消息驱动Bean(2) 客户 EJB服务器 消息驱动 Bean实例池 Bean实例 JMS 目的地 发送 消息
消息驱动Bean生命周期 1.实例化 Bean实例 新的实例 不存在 5.执行 PreDestroy 回调(可选) 2.、据部 3.执行 符洋入<例上下 Postconstruct 依赖(可选) 回”初 容器调用 onMessage 就绪态
消息驱动Bean生命周期 Bean实例 不存在 就绪态 1. 实例化 新的实例 2. 根据部署描述 符注入实例上下 文依赖(可选) 3. 执行 PostConstruct 回调,进行初 始容化器(可调选用) onMessage() 5. 执行 PreDestroy 回调(可选)