EJB是什么?(节选)

原创 2014年06月18日 17:39:56

最近的项目中使用了EJB。当时就只知道怎么用,没有深入的去理解。当完成这个项目之后,再回顾项目中使用的技术、框架以及工具的时候,突然感觉对EJB这个概念很是模糊,于是上网搜一些资料。但是,很多的资料都是“官方语言”,没有我想要的答案,但是机缘巧合下,发现了一篇能够给我解惑的文章,这里就节选一部分(查看全文)。

1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"?

既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!
这个问题其实挺关键的,因为J2EE 中并没有说明白,也没有具体的指标或者事例告诉广大程序员什么时候用EJB 什么时候不用。于是大家都产生一些联想,认为EJB"分布式运算"指得是"负载均衡"提高系统的运行效率。然而,估计很多人都搞错了,这个"服务群集"和"分布式运算"并没有根本解决运行负载的问题,尤其是针对数据库的应用系统。
为什么?
我们先把EJB 打回原形给大家来慢慢分析。

2. 把EJB 掰开了揉碎了
我们把EJB 的概念好好的分析一下,看看能发现些什么蛛丝马迹。

3.1 EJB 概念的剖析
我们先看一下,EJB 的官方解释:
商务软件的核心部分是它的业务逻辑。业务逻辑抽象了整个商务过程的流程,并使用计算机语言将他们实现。……
J2EE 对于这个问题的处理方法是将业务逻辑从客户端软件中抽取出来,封装在一个组件中。这个组件运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责发送调用请求和显示处理结果。在J2EE 中,这个运行在一个独立的服务器上,并封装了业务逻辑的组件就是EJB(Enterprise Java Bean)组件。
这其中我们主要关注这么几点,我们来逐条剖析:
剖析1:所谓:"业务逻辑"
我们注意到在EJB 的概念中主要提到的就是"业务逻辑"的封装,而这个业务逻辑到底是什么?说的那么悬乎,其实这个所谓的"业务逻辑"我们完全可以理解成执行特定任务的"类"。
剖析2:所谓:"将业务逻辑从客户端软件中抽取出来,封装在组件中……运行在一个服
务器上"

既然我们知道了"业务逻辑"的概念就是执行特定任务的"类",那么,什么叫"从客户端软件中抽取出来"?其实,这个就是把原来放到客户端的"类",拿出来不放到客户端了,放到一个组件中,并将这个组件放到一个服务器上去运行。
3.2 把EJB 这个概念变成大白话
变成大白话就是,"把你编写的软件中那些需要执行制定的任务的类,不放到客户端软件上了,而是给他打成包放到一个服务器上了"。
3.3 发现问题了
不管是用"八股文"说,还是用大白话说这个EJB 概念都提到了一个词--"客户端软件"。
"客户端软件"?难道EJB 的概念中说的是C/S 软件?
是的,没错!
EJB 就是将那些"类"放到一个服务器上,用C/S 形式的软件客户端对服务器上的"类"进
行调用。


结束语:我觉得文章中的“把你编写的软件中那些需要执行制定的任务的类,不放到客户端软
件上了,而是给他打成包放到一个服务器上了”这句话就是我想要的。用通俗易懂的语言把那些晦涩难懂的“官方语言”讲解清楚,这也是一种能力。

版权声明:本文为博主原创文章,未经博主允许不得转载。

EJB到底是什么,真的那么神秘吗?

百科定义EJB: 被称为java企业bean,服务器端组件,核心应用是部署分布式应用程序。用它部署的系统不限定平台。实际上ejb是一种产品,描述了应用组件要解决的标准   标准: ...
  • han_yankun2009
  • han_yankun2009
  • 2014年04月02日 10:50
  • 20345

Java EJB到底是什么?

1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"?  既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务 集群"和"企业级开发"吧! 这个问题其实挺...
  • lovechuanyu
  • lovechuanyu
  • 2014年10月27日 15:41
  • 4050

EJB2.X已死??

YUGS:EJB大势已去,指的是EJB2.x的那种重量级的EJB架构技术,而不是指全新的POJO based的EJB3.0。 其实围绕 EJB这个话题,已经讨论的口水都干了,我在2002年的时候还是相...
  • yiboo
  • yiboo
  • 2005年01月04日 12:39
  • 1518

什么是EJB?EJB是基于哪些技术实现的?

EJB(Enterprise JavaBean)是J2EE服务器端的组件模型,EJB包括会话Bean(Session Bean)、实体Bean(Entity Bean)、消息驱动Bean(Mess...
  • seven_csd
  • seven_csd
  • 2017年07月23日 20:48
  • 525

EJB的优势和使用场景

EJB的优势和使用场景 即使在EJB 2.0备受诟病的时期,笔者也从不掩饰自己对EJB的喜爱,因为它确实体现了一种非常优秀的设计思想和理念。即使在EJB饱受争议的时期,笔者也一直希望大家用更理智的眼...
  • li_xiao_ming
  • li_xiao_ming
  • 2016年10月12日 08:32
  • 8971

关于ejb的注入

如何在一个类里面得到ejb对象呢? private Other other=new Other()这样得到的不是ejb对象,只是一个简单的JAVA对象 得到ejb对象的方法有两种: 一种是通...
  • yjsuge
  • yjsuge
  • 2011年09月23日 15:50
  • 785

JavaBean、pojo、ejb的区别和联系

javabean: http://blog.csdn.net/anglebeat/article/details/43582329
  • Ideality_hunter
  • Ideality_hunter
  • 2016年12月02日 17:13
  • 553

EJB JPA 学习笔记

1、   容器管理EntityManager实例 //使用PersistenceContext直接注入EntityManager对象     @PersistenceContext(unitNam...
  • is_zhoufeng
  • is_zhoufeng
  • 2012年11月25日 22:58
  • 2856

ejb 的通俗解释

转载自http://blog.csdn.net/jojo52013145/article/details/5783677,其关于EJB概念的解释很好,对EJB架构缺点的剖析不正确,选择行的看看 1...
  • peterkang202
  • peterkang202
  • 2016年09月01日 10:48
  • 336

EJB基于JNDI/RMI/JAT等技术的实现与区别

    EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。SessionBean在J2EE应用程序中被用来完成...
  • zzhhaannggwei
  • zzhhaannggwei
  • 2008年01月11日 22:15
  • 904
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EJB是什么?(节选)
举报原因:
原因补充:

(最多只允许输入30个字)