从今天開始。我们共同来学习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在分布式开发中的作用:
如上图,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版本号为主进行介绍。