从今天開始。我们共同来学习JavaEE中一个很重要的规范:Ejb。

既然您已经找到了这篇文章。就说明您至少已经对分布式开发有个大体上的概念了,之前没了解过也没关系,正好通过咱们的共同学习,一起来了解它以及深入地学习它。

首先,我们来看一些Ejb的总括图:

这里是我对Ejb这一块儿知识进行的整理分类,以下我们看一下Ejb的概念。

也就是说,我们在深入展开学习之前,我们要弄明确:什么是Ejb?

Ejb也就是Enterprise JavaBeans。它是JavaEE分布式开发中的中间件,它定义了Javaserver端服务框架的规范。比方事务、安全、JNDI等等。

百度百科给出的解释例如以下:

EJB是sun的server端组件模型,设计目标与核心应用是部署分布式应用程序。凭借java跨平台的优势,用EJB技术部署的分布式系统能够不限于特定的平台。

EJB (Enterprise JavaBean)是J2EE的一部分。定义了一个用于开发基于组件的企业多重应用程序的标准。

其特点包含网络服务支持和核心开发工具(SDK)。
在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码。各自是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

了解了Ejb的概念,我们还须要了解Ejb容器以及Ejb在分布式开发中的作用:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1NzY1MDIzMDUx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" height="390" width="592" alt="">

如上图,Ejb容器提供了分布式应用的执行环境。

client能够通过RMI或者通过JNDI对当中业务进行訪问。

以下我结合几个问题,谈谈对Ejb的看法:

1、我们既然已经有了普通的JavaBean。为什么我们还须要Enterprise JavaBean呢?

我们在开发中,当然能够写普通JavaBean,来完毕后台开发。

可是在分布式开发中使用普通的JavaBean,我们就须要考虑非常多与业务需求无关的业务。比方安全问题。我们无法保障;分布式事务,须要我们自己手动写代码维护等等这些,这些假设我们手动维护,就大大提高了对开发者的要求,他们须要写大量的反复代码。且不利于维护。

Enterprise JavaBean。可以获得Ejb容器以及Ejbserver提供的服务。

它就行帮我们做这些与业务逻辑关系不是非常大可是极其重要的事情。

我们就行将很多其它的精力放在业务逻辑的实现上。

而它的使用非常easy,与编写普通的JavaBean没有什么太大的差别。

2、在分布式开发中,毫无以为。Ejb担当起了后台服务开发,那Ejb的各种Bean、Ejb容器、Ejbserver是怎样结合工作的呢?

我们都知道。Ejb是重量级中间件。我们通过全然透明的方式对它进行訪问,尤其是在Ejb3.0中,我们仅仅须要几行注解。就配置好了事务;或者仅仅须要写几行注解,就注入了你所需的服务或资源。

我们将业务逻辑写到Enterprise Bean中,打成jar包或者war包或者ear包。部署在部署在Ejb容器上。

在Ejb容器中。包括着各种通用性的服务。也就是说,Ejb的server通过Ejb容器。向外提供服务;儿Enterprise Bean也是通过Ejb容器,间接获得所需服务。

也就是例如以下图:

Ejb发展至今,已经到了成功公布到了Ejb3.0版本号。

事实上在Ejb2版本号中,功能已经比較完好,可是较为臃肿。学习使用也较为复杂,比方学习Ejb2,须要了解各种Home接口。而在Ejb3.0版本号中,以简化开发模型为中心进行又一次设计,它将实体Bean替换为POJO,实体中不须要有Ejb专有的代码,在逻辑上。他们仍然支持远程与非远程接口。

所以,今后我们以介绍Ejb3.0版本号为主进行介绍。

Ejb in action(一)——开篇介绍的更多相关文章

  1. ABP理论学习之开篇介绍

    返回总目录 为了和2016年春节赛跑,完成该系列博客,我牺牲了今天中午的时间来完成该系列的第一篇----开篇介绍.开篇介绍嘛,读过大学教材的同学都知道,这玩意总是那么无聊,跟考试没关系,干脆直接跳过, ...

  2. React与ES6(一)开篇介绍

    React与ES6系列: React与ES6(一)开篇介绍 React和ES6(二)ES6的类和ES7的property initializer React与ES6(三)ES6类和方法绑定 React ...

  3. “Zhuang.Data”轻型数据库访问框架(一)开篇介绍

    目录: “Zhuang.Data”轻型数据库访问框架(一)开篇介绍 “Zhuang.Data”轻型数据库访问框架(二)框架的入口DbAccessor对象 框架介绍 该框架主要用于数据库访问,封装了包括 ...

  4. LinQ开篇介绍

    语言集成查询(LINQ)是 Visual Studio2008中引入的一组功能. 可为 C# 和 Visual Basic 语言语法提供强大的查询功能. LINQ引入了标准易学的数据查询和更新模式,能 ...

  5. 一、Go语言开篇介绍

    Go语言开篇介绍 Go语言 是Google公司 在2007开发一种静态强类型.编译型语言,并在 2009 年正式对外发布. Go语言以其近C的执行性能和近解析型语言的开发效率,以及近乎于完美的编译速度 ...

  6. Ejb in action(六)——拦截器

    Ejb拦截器可以监听程序中的一个或全部方法.与Struts2中拦截器同名,并且他们都可以实现切面式服务.同一时候也与Spring中的AOP技术类似. 不同的是struts2的拦截器的实现原理是一层一层 ...

  7. .NET Core IdentityServer4实战-开篇介绍与规划

    一.开篇寄语 由于假期的无聊,我决定了一个非常有挑战性的活动,也就是在年假给大家带来一个基于OAuth 2.0的身份授权框架,它就是 IdentityServer4 ,如果没有意外的话,一定可以顺利的 ...

  8. Machine Learning in Action(0) 开篇

    现在貌似In Action很流行,各种技术抽象成工程商的Action,可以避开繁琐的内部原理,这本书从实践出发,通俗易懂的解释那些常用的机器学习算法,类似跟<集体智慧编程>.这本书中文出版 ...

  9. Ejb in action(四)——购物车实例演示有状态会话Bean

    前面.我们介绍了一个入门实例.事实上那就是无状态回话Bean的经常使用情况. 上一篇文章中.我们介绍了无状态会话Bean和有状态会话Bean的相关概念.为了加深大家对它们的理解,我们一起来实现一个有状 ...

随机推荐

  1. Opencv学习笔记5:Opencv处理彩虹图、铜色图、灰度反转图

    一.概述: 人类能够观察到的光的波长范围是有限的,并且人类视觉有一个特点,只能分辨出二十几种灰度,也就是说即使采集到的灰度图像分辨率超级高,有上百个灰度级,但是很遗憾,人们只能看出二十几个,也就是说信 ...

  2. Jenkins 使用 maven 出现C:\Windows\system32\config\systemprofile的解决

    jenkins 使用 maven 出现 C:\Windows\system32\config\systemprofile 的原因是 Jenkins 服务启动的账号使用了系统的账号,在服务里改成具体的桌 ...

  3. bzoj 3668 数位DP

    收获: 1.如果有很多位操作,并且不包含+-×/等高级运算,那么可以一位一位考虑,如果求一个最优解,可以尝试逐位确定,这道题因为原始攻击值有范围,那么就需要数位DP. /*************** ...

  4. C#高级编程9-第4章 继承

    继承是面向对象的一大特征.要深刻学习继承,需要学会使用调试的技巧来学习它,因为它比较抽象. 继承 继承是指一个具体的类型直接使用另一类型的某些数据成员或函数成员,继承的类是基类(父类),被继承的类是派 ...

  5. 让机器教人学习更有效:Becoming the Expert - Interactive Multi-Class Machine Teaching

    这是CVPR2015的一篇非常有趣的文章,论文研究了如何让机器自动地教导学生进行学习目标的分类.论文研发了一种机器学习方法,通过人机交互的过程中,不断的优化机器指导的方法和技巧,从而提高人学习目标分类 ...

  6. 使用清华大学开源软件镜像AOSP的“每月更新初始化包”更新指定版本的Android源码

    参照官方教程:Tsinghua Open Source Mirror 1. 下载了repo工具 mkdir  ~/bin PATH = ~/bin:$PATH curl  https://storag ...

  7. JSON在PHP中的基本应用

    从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码. 一.json_encode() 该函数主要用来将数组和对象,转换为json格式 ...

  8. python+Django+apache的配置

    下载安装xampp套件 下载mod_python-3.3.1.win32-py2.5-Apache2.2.exe 下载python-2.5.4.msi 下载Django 下载MySQL-python- ...

  9. mysql学习之二:mysql基本使用方法

    安装完mysql后我们能够进行sql语句的操作: 我们能够使用下面命令连接到MySQL服务: mysql -h localhost -u root -p -h參数指定要连接的MySQLserver地址 ...

  10. Python机器学习实战&lt;一&gt;:环境的配置

    详细要学习的书籍就是<机器学习实战>Machine Learning in Action,Peter Harrington Windows下要安装3个文件,各自是; 1.Python(因为 ...