一、为什么使用EJB ?
企业Bean执行在EJB容器中。企业Bean实际上就是一个封装了业务逻辑的Java类,那么我们为什么要使用EJB呢 ?
1.最重要的原因:分布式。简要的说,分布式能够将分布在各处的资源综合利用,可是对于用户来说展现的是一个统一的总体;分布式能够动态分配任务,分散物理的和逻辑的资源。从而提高运行效率;分布式技术能够避免因为单个节点失效而使整个系统崩溃的危急。
2.分布式对象之间的事务支持,RMI(Remote Method Invocation,远程方法调用)不支持事务。
3.支持不同的client,仅仅要少量代码。就能够让远程client訪问到企业Bean。
二、EJB的基本分类
1.Session Bean
即会话Bean。能够运行业务逻辑操作。如注冊用户、订单登记等。
问:什么是会话?
答:即从client获得EJB对象開始,然后调用EJB的方法(能够多次),直到client声明周期结束或client释放了EJB对象为止,称为一次会话。
问:Stateful Session Bean 和Stateless Session Bean有什么差别?
答:Stateful Session Bean 即有状态的Session Bean,Stateless Session Bean即无状态的Session Bean。所谓的有状态和无状态,是由Session Bean的成员变量决定的。
·Stateful Session Bean:即EJB可以为同一个client在多次请求(方法调用)之间保持状态信息。
·Stateless Session Bean:并不是是说EJB不能存在状态,而是说EJB容器不会对EJB的状态做管理。
简言之,有状态的Session Bean,即client每次请求都会创建一个新的对象;
无状态的Session Bean,就是client每次请求都訪问的一个对象。
2.Message Driven Bean
3.Entity Bean
持久化是位于 JDBC 之上的一个更高层抽象。持久层将对象映射到数据库,以便在查询、 装载、 更新, 或删除对象的时候, 无须使用像 JDBC 那样繁琐的 API。
在 EJB 的早期版本号中。持久化是 EJB 平台的一部分。
从 EJB 3.0開始, 持久化已经自成规范, 被称为 Java Persistence API。
Java Persistence API 定义了一种方法,能够将常规的普通 Java 对象(有时被称作 POJO)映射到数据库。 这些普通 Java 对象被称作 Entity Bean。