EJB
前言
回顾EJB出现以前的Java应用开发,大部分开发者直接用JSP页面,在加上少量Java Bean就可以完成整个应用,所有的业务逻辑、数据库访问逻辑都直接写在JSP页面中。系统开发前期,开发者不会意识到有什么问题,但随着开发进行到后期,应用越来越大,开发者需要花费大量时间去解决非常常见的系统级问题,反而无暇顾及真正需要解决的业务逻辑问题。
最初的EJB 1.0大约于1998年发布,而struts1早期版本发布于2000年,从2000年开始,伴随着B/S架构逐渐引入企业应用软件开发领域,Java就逐渐成为企业应用开发的主流技术,一直到2003年,Strut1+EJB一直都是Java技术架构的不二选择,然后这一切随着2003年Spring以without EJB的面目出现之后,一切都开始改变。
我仿佛忽略了EJB,从我入行Java以来(2017年),听到业界最多的呼声就是Spring,在追寻这些呼声之中,我越发迷茫,于是开始了漫长的历史追寻。我从最基础的Servlet开始一步步探索,Servlet、JSP、Model1、Model2(Struts1)、WebWork、Struts2,正当我打算深入了解Hibernate之时,EJB映入我的眼帘,我开始慌忙的追寻历史,生怕把这宝贵的知识遗漏在角落里,按照年代来算,EJB比Struts1早两年,我觉得我还是有必要去探索一下这门技术。
EJB是什么?
是什么
Java体系结构:
J2EE体系结构:
其中EJB属于J2EE体系结构中的业务逻辑部分。
EJB构成:
EJB容器中有三个类也称为组件,分别是:
Session Bean(逻辑)
EntityBean(数据)
messageDrivenBean(消息)
从上图可以看到:
1、组件是在容器中的。容器提供了组件的环境并对其进行了管理。
2、调用组件的被称为ejb客户端。客户端可以运行在web容器中。如jsp、servlet、jndi、 web service等。
一个简单的分布式集群图:
Enterprise javabean(EJB)技术是Java平台的服务器端组件体系结构,Enterprise Edition(Java EE)。EJB技术允许快速和简化开发的分布式的、事务性的、安全的和便携式基于Java技术的应用程序。【oracle官网】
EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编好的程序(即:类)打包放在服务器上运行。凭借Java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB(Enterprise JavaBean)是J2EE(JavaEE)的一部分,定义一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务中心支持和核心开发工具(SDK)。在J2EE里,Enterprise Java Beans(EJB)称为Java企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。在EJB3.0推出以后,实体Bean被单独分了出来,形成了新的规范JPA。【百度百科】
一个技术规范
EJB从技术上而言不是一种"产品",而是一中技术规范。EJB是一种描述了构建应用组件要解决的标准:
可扩展(Scalable)
分布式(Distributed)
事务处理(Transactional)
数据存储(Persistent)
安全性(Secure)
EJB的期望
提供一个标准的分布式、基于OO的组件架构
屏蔽复杂的系统级功能需求
Write once,run anywhere
与非Java应用之间的互操作能力
兼容CORBA标准
选择EJB
EJB服务器完成"繁杂"的工作:应用开发人员关注于业务逻辑的实现而不是底层的实现机制、支持事务处理(多个业务操作同时成功,或全部失败),可以通过在代码外的描述来定义事务处理级别可扩展性,EJB可以根据您应用的增长而扩展,EJB服务器往往还提供了负载均衡,由EJB服务器提供的资源的访问权限控制。
EJB的架构
如上图EJB的体系结构。为了满足架构的目标,规范中描述了:
服务器(Server)
容器(Container)
类(Class)和实例(instance)
Home和Remote接口
客户端(Client)
推荐阅读:
https://blog.csdn.net/li_xiao_ming/article/details/52793930
https://blog.csdn.net/aspdao2/article/details/4895377
https://baike.baidu.com/item/EJB/144195?fr=aladdin
https://blog.csdn.net/jojo52013145/article/details/5783677
https://blog.csdn.net/origination_star/article/details/80035985
http://developer.51cto.com/art/200906/128387.htm
http://book.51cto.com/art/201008/220993.htm
http://developer.51cto.com/art/201906/597963.htm
https://blog.csdn.net/seastar_pickle/article/details/307676
https://github.com/jboss-developer/jboss-eap-quickstarts
回顾EJB出现以前的Java应用开发,大部分开发者直接用JSP页面,在加上少量Java Bean就可以完成整个应用,所有的业务逻辑、数据库访问逻辑都直接写在JSP页面中。系统开发前期,开发者不会意识到有什么问题,但随着开发进行到后期,应用越来越大,开发者需要花费大量时间去解决非常常见的系统级问题,反而无暇顾及真正需要解决的业务逻辑问题。
最初的EJB 1.0大约于1998年发布,而struts1早期版本发布于2000年,从2000年开始,伴随着B/S架构逐渐引入企业应用软件开发领域,Java就逐渐成为企业应用开发的主流技术,一直到2003年,Strut1+EJB一直都是Java技术架构的不二选择,然后这一切随着2003年Spring以without EJB的面目出现之后,一切都开始改变。
我仿佛忽略了EJB,从我入行Java以来(2017年),听到业界最多的呼声就是Spring,在追寻这些呼声之中,我越发迷茫,于是开始了漫长的历史追寻。我从最基础的Servlet开始一步步探索,Servlet、JSP、Model1、Model2(Struts1)、WebWork、Struts2,正当我打算深入了解Hibernate之时,EJB映入我的眼帘,我开始慌忙的追寻历史,生怕把这宝贵的知识遗漏在角落里,按照年代来算,EJB比Struts1早两年,我觉得我还是有必要去探索一下这门技术。
1、组件是在容器中的。容器提供了组件的环境并对其进行了管理。
2、调用组件的被称为ejb客户端。客户端可以运行在web容器中。如jsp、servlet、jndi、 web service等。
Enterprise javabean(EJB)技术是Java平台的服务器端组件体系结构,Enterprise Edition(Java EE)。EJB技术允许快速和简化开发的分布式的、事务性的、安全的和便携式基于Java技术的应用程序。【oracle官网】
EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编好的程序(即:类)打包放在服务器上运行。凭借Java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB(Enterprise JavaBean)是J2EE(JavaEE)的一部分,定义一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务中心支持和核心开发工具(SDK)。在J2EE里,Enterprise Java Beans(EJB)称为Java企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。在EJB3.0推出以后,实体Bean被单独分了出来,形成了新的规范JPA。【百度百科】
EJB从技术上而言不是一种"产品",而是一中技术规范。EJB是一种描述了构建应用组件要解决的标准:
EJB服务器完成"繁杂"的工作:应用开发人员关注于业务逻辑的实现而不是底层的实现机制、支持事务处理(多个业务操作同时成功,或全部失败),可以通过在代码外的描述来定义事务处理级别可扩展性,EJB可以根据您应用的增长而扩展,EJB服务器往往还提供了负载均衡,由EJB服务器提供的资源的访问权限控制。