Enterprise JavaBean 简介
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Enterprise JavaBean 简介
在顶层我们使用的框架是面向服务的而在其之下的开发方法面向组件最基层的便是面向对象面向过程的JAVA编程。
- 面向过程和面向对象是两种具体程序设计时的编程范式他们没有本质区别只是使用不同的方法和角度去观察一个世界。
- 而面向服务是编写大型系统时才需要考虑的一种软件架构设计思想。
- 面向组件Component-Based Development是一种软件工程的实践方法。
1. 什么是EJB
JAVA EE标准中为了解决企业大型软件的面向服务开发难题包括但不限于服务接口定义、服务间通信、事务控制、内容持久化等
开发了一套用于 web 环境专用的 JavaBean称为 Enterprise JavaBeanEJB。EJB是一组构建企业级web应用的专用 JavaBean。或者说EJB是一套重量级的企业应用开发框架使用者须遵循其规则开发具体业务逻辑。
-
EJB的目标是保证企业软件开发的可伸缩性保证企业系统平滑发展而不是发展到一种规模重新更换一套软件系统。
-
EJB的源码内容对用户是透明的即用户不需要知道其源码内容但用户可以根据接口直接调用。
2. EJB架构
EJB架构描述了5类内容
- 对象Object
- 类Class
- 组件Component组件也是抽象的概念符合某种规范的类的组合构成组件。J2EE来说有什么 servlet、jsp、javabean、EJB都是组件。
- 容器Container容器是特殊的组件可以包含其他组件和容器。
- 框架Framework就是某种应用的半成品就是一组组件供你选用完成你自己的系统。
那拿老图说事的话
3. EJB组件
EJB既然是一套javaBean其中按功能分为三类构件
- Session bean会话构件。会话构件的功能是封装业务逻辑完成某个具体的操作。根据其生命周期不同分为无状态和有状态两种
- Stateful Session Bean有状态会话 Bean可以存储用户相关信息在服务器端一个 Bean 对象只为一个客户服务
- Stateless Session Bean无状态会话 Bean不存储用户相关信息一般说来在服务器端一个 Bean 对象可能为很多客户服务
- Entity bean实体构件。实体bean的功能是封装数据库中的数据。具体地说实体bean可以生成数据的持久化对象一个实体bean对象对应数据库表中的一行把表中的属性映射为对象属性。
- Message Driven Bean消息构件。消息驱动bean是一种异步无状态组件结合了 session bean 和 Java信息服务JMS信息监听者的功能它允许一个商业组件异步地接受 JMS消息。
4. EJB框架的设计初衷
EJB为我们提供了很多在企业开发中需要使用到的服务如事务管理/安全/持久化/分布式等因为这些服务由容器提供无需我们自行开发这样大大减少了我们的开发工作量。
另外EJB提供了强制式分层解耦设计方法。 EJB比较适合用于大型企业的面向服务的软件开发。因为大型企业一般都会存在多个信息系统而这些信息系统又相互关联。为了避免业务功能重复开发实现最大程度的重用有必要把业务层独立出来让多个信息系统共享一个业务中心这样应用就需要具备分布式能力。
5. EJB框架的特点
非EJB的应用模式的MVC应用其显示层、控制层和业务层 三者不能分开。
采用EJB的应用模式的MVC应用业务层被独立出来。也就是说显示层和控制层可以部署在一台机器上业务层部署在另一台机器上。
- 非EJB的应用模式
- EJB的应用模式
EJB比较适合用于大型企业因为大型企业一般都会存在多个信息系统而这些信息系统又相互关联。
如下图所示某公司的两个系统网上商城系统和手机商场系统。若采用EJB模式两个系统可以共用分离出来的业务层。
当公司的业务发生变更时只需修改分离出来的业务层即可。
6. EJB组件运作步骤图
EJB如何实现不同web服务器之间的互相通信
EJB使用RMI远程方法调用实现不同Java虚拟机之间的对象调用。使用 webService\CORBA
等技术实现 java虚拟机 与非java程序服务器如C python等的数据交换问题。
实现不同web服务器之间的相互通信是实现面向服务架构的基础环节。