一、为什么使用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



    Java 消息服务( Java Message
Service。 简称 JMS) 是企业级消息传递系统, 紧密集成于 Jboss Server 平台之中。

企业消息传递系统使得应用程序可以通过消息的交换与其它系统之间进行通信。

    消息驱动 Bean(MDB)是设计用来专门处理基于消息请求的组件。 它是一个异步的无状态 Session Bean, client调用 MDB 后无需等待, 立马返回,
MDB 将异步处理客户请求。


    3.Entity Bean

持久化是位于 JDBC 之上的一个更高层抽象。持久层将对象映射到数据库,以便在查询、 装载、 更新, 或删除对象的时候, 无须使用像 JDBC 那样繁琐的 API。

在 EJB 的早期版本号中。持久化是 EJB 平台的一部分。

从 EJB 3.0開始, 持久化已经自成规范,
被称为 Java Persistence API。

Java Persistence API 定义了一种方法,能够将常规的普通 Java 对象(有时被称作 POJO)映射到数据库。 这些普通 Java 对象被称作 Entity Bean。

最新文章

  1. [置顶]PADS PCB功能使用技巧系列之NO.006- 如何实现OrCAD与PADS Layout同步?
  2. UITableView详细注释
  3. 50多条mysql数据库优化建议
  4. 从客户端(CourseIssueContent="<P>财务审计师岗位认证招生简章<BR>...")中检测到有潜在危险的 Request.Form 值。
  5. 转:pack URI in WPF
  6. Python中list的实现
  7. MAC OS中使用ll,la命令
  8. 【COM学习】之二、HRESULT,GUID
  9. HyperLedger Fabric 1.1 手动部署单机单节点
  10. docker注意事项
  11. Dev GridControl GridView常用属性
  12. Chapter 4 Invitations——26
  13. 接口测试工具之Postman笔记
  14. Codeforces Round #545 Div. 1自闭记
  15. Android 架构 -- Room
  16. bootstrap的css和html设计规范
  17. .net 缓存
  18. Linux pwn入门教程——CTF比赛
  19. 【资料收集】QT学习资料
  20. 2018-10-27 22:44:33 c language

热门文章

  1. Google TPU 揭密——看TPU的架构框图,矩阵加乘、Pool等处理模块,CISC指令集,必然需要编译器
  2. 杂项-SpringEureka:笔记-1
  3. hihoCoder-1830 2018亚洲区预选赛北京赛站网络赛 C.Cheat 模拟
  4. codeforces 712 Memory and De-Evolution
  5. IO编程 - 转载自廖雪峰的博文
  6. 浅析CLR的事件
  7. 第7章 性能和可靠性模式 Load-Balanced Cluster(负载平衡群集)
  8. OpenCV、OpenCL、OpenGL、OpenPCL
  9. Win10怎么批量修改文件后缀名?
  10. Kattis - Different Distances