深入了解EJB (一) EJB在java世界的地位
对EJB的认识
接触EJB以来有一段时间了,走马观花一样把它所涉及到的东西看了一遍,随着深入了解越来越感觉到ejb的很强大,用了java后觉的java好用、学历SSH觉的比java好用、学了ejb觉的比ssh好用,至于它们什么关系,可以概括为后面的概念理解要依赖于前面,用EJB时间还不长不过已经对它有了一个新的定位,下面来让我们站在ejb的角度俯视ssh、java。
EJB相关概念
ejb既是J2EE的一种规范,又是一个特殊的java类(API、IDL一样,既是一个规范,又是一个实现)给一个类贴上规范化的标签就成了EJB类或者叫ejb组件,这种特殊的类需要一个更特殊的类来管理,以用来控制很多个我们自己建立的ejb类,这个更特殊的ejb类,我们可以称之为ejb容器,也可以叫做ejb组件、中间件都可以拿来叫,只不过概念侧重点不同。容器负责一些与业务逻辑无关而必须的功能,如事务、日志、安全、管理EJB和servlet的生命周期、数据库连接池、数据持久化等公共的服务,使得我们把主要精力放在业务逻辑上。
ejb容器相当于二次革命,大家都知道蒸汽机时代的到来,为生成提高了效率,工人们生产不再是一点一点的手工生产,而不是相当一部分工作让机器帮我们完成,我们可以把这个蒸汽机看做是ejb容器,它帮助我们完成了一些辅助性功能,不需要我们再手工开发,这样提高了我们的开发效率.
下面是我简单画的这些概念之间的基本关系,有的会有交叉、有的是包含关系,这只是一个一般关系也有一些特殊的没有包括在内。
从SSH到EJB
它们都是一种框架,作为框架都是为了解决某一方面的问题而出现,对于开发一般的项目不涉及到分布式用SSH可以完美解决,目前国内好多中小型公司都在使用这个框架开发项目,SSH属于轻量级框架即它的独立性高拿来就可以用,不会依赖于其它的一些软件,用框架开发本来的目前是为了解决开发的耦合性,使得开发越分散越有利于分工、简化开发,SSH的解决了ejb中的很多问题,如事务、日志、安全、注释等,不过还有些分布式没有解决,同ssh相比ejb是重量级框架要依赖容器运行,但是它也有它的优势,ejb为解决了项目的分布式逻辑调用,举个例子来说:如果一家公司总部设在北京,美国、上海、新加坡等有很多的子公司共用一套管理系统,如果新加坡的子系统想要调用北京总公司的系统接口,这种实现SSH是完不成的,而ejb可以完成这种跨网络的分布式互操作。
ejb也有它的缺陷,分布式调用的效率没有本地调用高,还要过多的依赖于网络通信、网络资源等,如果不是特别的大的系统,诸如电信、联通等用到ejb的时候还是比较少的,当然还有其他技术实现这种跨网络,甚至跨品太、跨语言调用,比如CORBA标准,很多厂商退出了自己的CORBA产品,为以后的分布式业务逻辑实现提供了广泛前景。
从下面可以看出ejb将业务逻辑分出来了运行在单独的EJB容器里面,这也说明他可以跨不同的电脑部署,业务逻辑、数据库可以部署在异地电脑上,这也是同ssh的主要区别。
也许你会觉的ejb功能这么强大,那么以后开发项目都用ejb吧,这也是没有必要可以说ejb是对ssh的补充和扩展,两者没有说谁一定会替代谁,就好比出现了java、C#、C++语言,就一定会淘汰掉VB吗?它们更有更得用处、有各自的市场,只是互补的关系,从ejb的发展来看它也在朝着既轻量又支持分布式的方向发展,没准ejb4.0会支持这一特点。
转载于:https://www.cnblogs.com/lilongsheng1125/p/4978538.html
深入了解EJB (一) EJB在java世界的地位相关推荐
- ejb java_EJB继承与Java继承不同
ejb java 尽管EJB继承有时使用Java继承,但事实并非总是如此. 就像您在我以前的文章中可以读到的那样 ,EJB不必实现任何接口即可公开业务接口. 反之亦然-仅仅是因为EJB实现了某个接口或 ...
- 当音乐学博士搞起编程,用一本书改变了Java世界!
前言 说到Spring,也许现在的开发者们最先想到的是 Josh Long 超快的语速与现场代码能力,让很多Java开发者折服. 然后Spring的历史上,最传奇的还是要数其创始人:Rod Johns ...
- WildFly:如何从位于另一个应用程序中的 EJB 调用 EJB
目录 创建 EJB 服务器项目 配置服务器依赖项(WildFly 18 及更高版本) 配置服务器依赖项(WildFly 11.12.13.14.15.16.17) 部署 EJB 服务器项目 创建 EJ ...
- 什么是EJB?EJB是基于哪些技术实现的?
EJB(Enterprise JavaBean)是J2EE服务器端的组件模型,EJB包括会话Bean(Session Bean).实体Bean(Entity Bean).消息驱动Bean(Messag ...
- 程序员心中都有一个江湖,java世界,就是一个江湖!
大千世界,无所不有.这世上不光有人类世界,还有咱们的 java 世界.今天就由我这个实习导游带领你们了解了解咱们的 java 世界的奇妙之处. 有一种暖男叫 catch,有一种真爱叫 try---ca ...
- JAVA基础复习1:开始Java世界的第一个程序
之前,我已经安装好了Java,并且设置好了Java配置.那么来写一段进入Java世界的第一个程序. 1.打开记事本(曾经看过廖大神的一个博客,说是不建议使用Windows自带的记事本,因为有时候会添加 ...
- 注入安卓进程,并hook java世界的方法
说明: 安卓系统的可执行对象有两个世界,一个是Linux Native世界,一个是Java世界.两个世界能够通过jvm产生交互,具体来说就是通过jni技术进行互相干涉.但是在正常情况下,只能在Java ...
- 世界java大神有哪些_JAVA基础复习1:开始Java世界的第一个程序
之前,我已经安装好了Java,并且设置好了Java配置.那么来写一段进入Java世界的第一个程序. 1.打开记事本(曾经看过廖大神的一个博客,说是不建议使用Windows自带的记事本,因为有时候会添加 ...
- 2020年java缺人_Java回顾#5 –到2020年,什么将改变Java世界?
2020年java缺人 最后,看看您的水晶球–到2020年,什么将改变Java世界? JDK 14有望带来非常有趣的新功能,即使其中一些功能仍处于预览状态. 我很好奇开发人员将如何使用记录(JEP 3 ...
最新文章
- 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-2 运行可执行文件
- python查看函数调用栈
- 单片机入门-矩阵键盘控制数码管显示
- 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )
- Linux调优方案,sysctl.conf的设置
- Java代码的维护与更新,Java常用的规则引擎,让你变动的代码更加容易维护
- SmartCode.ETL 这不是先有鸡还是蛋的问题!
- sql交叉报表实例(转)
- MTK 驱动(69)---MTK平台 电池驱动相关
- java.lang.object 下载_java.lang.Object
- 【推荐】SQL Server 2008 R2 中英文 开发版/企业版/标准版 下载
- 异构平台对比(GPU FPGA DSP)
- ORACLE常用的一些特殊SQL,收藏收藏,下次需要的时候就不用再翻箱倒柜了
- SSM仓库管理系统毕业设计-附源码061015
- 海康GB28181协议服务器怎么配置,GB/T28181国标流媒体服务器在海康平台上进行级联配置步骤总结...
- 抖音怎么知道自己上热门 抖音是靠md5识别视频的
- [bzoj2434][AC自动机][树状数组]阿狸的打字机
- [C++]_ELVE_Windows下QT5.12连接MySql8.0解决方案
- 12306 验证码识别源码
- 李斌转让5000万股私人持有股份 完成蔚来用户信托设立
热门文章
- ARP监测工具Arpwatch
- 网页图表Highcharts实践教程之认识Highcharts
- 域控制器升级的先决条件验证失败新建_快应用开发工具升级v1.4.0
- iOS App跳转权限设置
- mysql 5.7.15 安装_mysql 5.7.15 安装配置方法图文教程
- 地图点击省跳转到市_城市天际线导入真实世界地图教程
- 基于连通域字符分割的流程_基于改进连通域算法的车牌字符分割方法
- 自定义ActionSheetView
- php跟web前端的区别,php与javascript的区别是什么?
- 华人小哥开发“CG工坊”,帮你快速入门计算机图形学 | GitHub热榜