含义:
企业级的JavaBeans(Enterprise JavaBean),其设计目标是部署分布式应用程序。
EJB是J2EE的一部分,称为Java企业Bean,它把使用Java开发的服务器组件的部署和开发进行标准化。
类型:
主要有三种:会话bean,实体bean和消息驱动bean。其中会话bean又包含无状态会话bean和有状态会话bean。
会话bean——完成一个清晰的解耦的任务。例如检查账户历史记录等
实体bean——代表存在于数据库中业务的复杂业务实体。
消息驱动bean——用于接收异步JMS消息。
1)无状态会话bean
无状态会话Bean没有中间状态。它们不保持追踪一个方法调用另一个方法传递的信息。因此一个无状态业务方法的每一次调用与它的前一个调用都是独立的。因为他们彼此之间是独立的,所以不需要维护状态。
特点:提供独立的服务,不维持客户端的状态。只在内存中保存,EJB服务器崩溃后不再保存。
2)有状态会话bean
一个有状态的会话bean跨越多个方法调用,它需要维护状态。
例如:
融资审批流程,需要先填写计划,再经过层层审批,然后才能走完流程。在流程中,如果遇到系统崩溃或网络故障,其状态是需要保留的。
特点:
提供会话的交互,存储客户端的行为状态。在内存中维持,同样在EJB服务器崩溃后不再保存。
3)实体bean
持久性数据在内存中的体现,与前两者不同的事,在应用服务器崩溃后能够恢复。并且它支持来自多个客户的并发访问。
实例:
在银行系统中,一个EJB代表一个银行账户。在图书管理系统中,一个EJB代表一本书。在订单管理系统中,一个EJB代表一个客户。
4)消息驱动
唯一一种必须实现一个业务接口的Bean。在消息之间,维持状态的异步组件。
EJB接口
两个可由客户使用的远程接口:Home接口和Remote接口。
1)Home对象
EJB对象的“工厂”或“代理”,管理EJB实例的生命周期。它在所有的EJB的客户间共享。
实例:
//定义home接口
package simplestateless;
import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
public interface StatelessHome extends EJBHome{
public Stateless create() throws CreateException,RemoteException;
}
2)Remote对象
负责EJB的业务操作。
实例:
//定义远程接口
package simplestateless;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface Stateless extends EJBObject{
public double DollarToRMB(double dollar) throws
RemoteException;
}
小结:
对EJB只是一个初步的了解,期待后续学习的补充。