EJB (Enterprise JavaBean)是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。EJB组件具有可移植性,EJB3.0核心是会话Bean(Session Bean),和消息驱动Bean(MessageDriven Bean)。
Session Bean代表一个可处理应用中业务逻辑的完整组件,由客户创建,通常只存在一个单独的客户/服务器会话中,主要包含业务逻辑实现部分,部署在EJB后可以被其他客户端获取并调用,其中获取和调用的方法称为一次会话。
Session Bean可以分为两类有状态会话bean(Stateful Session Bean)和无状态回话bean(Stateless Session Bean),有状态会话bean使用一个或多个实例变量记录客户端状态在客户端多次调用Session Bean方法时客户端一直保持Session Bean引用,则Session Bean可以多次调用此会话状态。无状态回话bean不需定义实例变量在需要调用客户端相关实例变量时实例变量只在调用期间有效,调用结束后客户端状态不保留。Session Bean支持并发线程安全和事务和安全管理消息驱动Bean支持JMS异步消息,JMS的实现过程:应用程序A——>消息——>JMS消息服务器——>消息——>应用程序B。JSP、EJB等可以充当JMS消息生产者,生产者将消息传递到>JMS消息服务器,触发消息驱动bean,而后对消息进行读取处理等操作。消息驱动bean衍生于无状态会话bean因此可以处理来自多个客户端的信息但不保留客户端会话状态。
EJB3.0还包括Entity Access Object,简称为EAO.Entity作为一个轻量级持久化对象出现采用Annotation来管理实体和数据表的映射关系。EAO接口实现类中用Entity传递,把实体作为对象进行传递。经由JPA操作完成数据库持久化访问。