天天看点

Ejb in action(一)——开篇介绍

从今天开始,我们共同来学习javaee中一个非常重要的规范:ejb。既然您已经找到了这篇文章,就说明您至少已经对分布式开发有个大体上的概念了,之前没了解过也没关系,正好通过咱们的共同学习,一起来了解它以及深入地学习它。

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

Ejb in action(一)——开篇介绍

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

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

ejb也就是enterprise javabeans,它是javaee分布式开发中的中间件,它定义了java服务器端服务框架的规范。比如事务、安全、jndi等等。

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

ejb是sun的服务器端组件模型,设计目标与核心应用是部署分布式应用程序。凭借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在分布式开发中的作用:

Ejb in action(一)——开篇介绍

如上图,ejb容器提供了分布式应用的运行环境。客户端可以通过rmi或者通过jndi对其中业务进行访问。

下面我结合几个问题,谈谈对ejb的看法:

1、我们既然已经有了普通的javabean,为什么我们还需要enterprise javabean呢?

我们在开发中,当然可以写普通javabean,来完成后台开发。但是在分布式开发中使用普通的javabean,我们就需要考虑很多与业务需求无关的业务。比如安全问题,我们无法保障;分布式事务,需要我们自己手动写代码维护等等这些,这些如果我们手动维护,就大大提高了对开发人员的要求,他们需要写大量的重复代码,且不利于维护。

enterprise javabean,能够获得ejb容器以及ejb服务器提供的服务。它就能够帮我们做这些与业务逻辑关系不是很大但是极其重要的事情。我们就可以将更多的精力放在业务逻辑的实现上。而它的使用非常简单,与编写普通的javabean没有什么太大的区别。

2、在分布式开发中,毫无以为,ejb担当起了后台服务开发,那ejb的各种bean、ejb容器、ejb服务器是如何结合工作的呢?

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

我们将业务逻辑写到enterprise bean中,打成jar包或者war包或者ear包,部署在部署在ejb容器上。在ejb容器中,包含着各种通用性的服务,也就是说,ejb的服务器通过ejb容器,向外提供服务;儿enterprise bean也是通过ejb容器,间接获得所需服务。

也就是如下图:

Ejb in action(一)——开篇介绍

ejb发展至今,已经到了成功发布到了ejb3.0版本。其实在ejb2版本中,功能已经比较完善,但是较为臃肿。学习使用也较为复杂,比如学习ejb2,需要了解各种home接口。而在ejb3.0版本中,以简化开发模型为中心进行重新设计,它将实体bean替换为pojo,实体中不需要有ejb专有的代码,在逻辑上,他们仍然支持远程与非远程接口。

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

继续阅读