有状态Bean和无状态Bean的本质区别:声明周期
1. 前言:EJB
EJB:称为企业Java beans,是基于分布式事务处理的企业级应用程序的组件。
Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构
EJB种类:
EJB容器可以接收三类EJB:
- 会话Bean(Session Beans)
- 有状态会话Bean
- 无状态会话Bean
- 实体Bean(Entity Bean)
- 消息驱动Bean(Message Driven Beans,MDBs)
1. 有状态会话Bean
1.1 介绍
有状态会话Bean是包含状态的分布式对象,贯穿整个会话他们都要保有客户端信息。如执行支付流程就需要一个有状态会话Bean,因为结账是一个多步动作,服务器端必须可以随时了解到用户进行到哪一步了。此外,尽管有状态会话Bean的状态信息可以被保持,但始终只能由一个用户来访问之。
就像原始Java web程序中的session域一样,可以保存用户的状态信息,作用域服务器端。
一旦用户灭亡(调用结束 / 实例结束),Bean的生命周期也结束,每个用户最初都会得到一个初识的Bean。