J2EE Architecture(12)

简介: J2EE Architecture(12) 1、EJB规范 EJB(Enterprise JavaBean)是最重要的组件,也是J2EE技术的重要组成部分。 与Servlet和JSP不同,EJB能够为企业应用程序提供业务逻辑和数据访问逻辑支持。

J2EE Architecture(12)


1、EJB规范
EJB(Enterprise JavaBean)是最重要的组件,也是J2EE技术的重要组成部分。
与Servlet和JSP不同,EJB能够为企业应用程序提供业务逻辑和数据访问逻辑支持。
2、EJB描述了一些不同的EJB角色
1)EJB提供者
其创建Bean,Bean执行企业需要的业务操作。提供者根据企业的业务规则,将业务规则编入适当方法。
2)应用程序组装者
其根据需要,将一个或多个EJB提供者创建的Bean组装为可部署的应用程序单元。
组装者还组装其它组件,如Web组件,以创建更大规模的企业应用程序。
3)应用程序部署者
应用程序部署者的任务是在符合企业要求的操作环境中,“部署”组装的企业应用程序。
部署者要确保在适当的EJB容器和EJB服务器中完成开发,确保在部署时分析所有外部实体,并确保企业应用程序可以使用所有资源。
4)EJB Server提供者
其实际上就是厂商。厂商有能力创建需要关键功能的分布式企业应用程序。
5)EJB容器提供者
EJB协助提供EJB工具和运行时支持。工具可帮助部署者在操作环境中部署应用程序。
6)系统管理员
其职责包括企业系统运行和分布式网络环境的维护,包括EJB Server和EJB容器。
EJB规范可以确保不同角色能共同工作。
3、EJB详解
1)介绍
Bean并非普通Java对象,而是3个实体的组合:home接口、component接口和Object Identity(对象标识)。
部署在操作系统的Bean包含所有这些实体。各实体在Bean的生命期和功能方面担当不同的角色。
local(本地)接口时EJB2.0引入的新特性,能在设计级别完善EJB。
2)home接口
它用来创建、查找或删除同类EJB,定义适当方法创建、查找或删除EJB。
home接口还支持特殊home业务方法,home业务方法不针对任何特殊Bean实例。
远程客户端使用远程home接口,本地客户端使用本地home接口。
3)component接口
它负责在EJB上“执行业务方法”,声明企业应用程序需要的所有业务方法。
component接口可以是本地或远程接口。
4)本地接口
本地客户端可能是一个企业Bean,与其它企业Bean处在同一个JVM中。
在使用本地接口时,不需要远程开销,故能优化访问企业Bean。
本地接口可与“远程”接口共存。
与本地客户端不同,远程客户端需要远程JNDI查找功能。
本地Bean可相互通信,以调用执行业务流程需要的业务方法,传输的参数和返回值不需要串行化,参数按引用传递。
5)对象标识
对象标识实际上就是EJB对象。EJB2.1开始支持3类EJB对象:
(1)会话Bean
会话Bean是企业应用程序的会话创建者,代表EJB服务器中的本地或远程客户端。
会话Bean是轻量级服务器端组件,支持事务,能执行业务操作。
当客户端准备执行时,容器将创建会话Bean,或从Bean池中检索会话Bean;当执行结束时,容器将销毁会话Bean,或将Bean的内容设置为“空”或默认值后,将会话Bean返回Bean池。
会话Bean可能有状态,也可能无状态。无状态会话Bean可为本地或远程客户端提供“Web服务端点”。
(2)实体Bean
实体Bean提供共享数据库的持久数据视图。它们是持久数据,只要相应数据存在,实体Bean的实例就一直存在。
与会话Bean和不同,当容器崩溃时,实体Bean、实体Bean的远程引用相应主键可存活下来。
(3)消息驱动Bean
消息驱动Bean(Message Driven Bean,MDB)在多个方面的表现与会话Bean和实体Bean不同,MDB不包含home或component接口,没有Web服务端点,MDB能在某种程度上执行与会话Bean类似的业务逻辑操作。
MDB无状态,支持事务,是轻量级服务器端组件,可以以异步方式为消息传输中间件提供“桥梁”。
MDB可访问底层数据库中的共享数据。

 

目录
相关文章
|
数据可视化 搜索推荐 BI
深度解析好用项目管理工具的功能优势
在选择项目管理工具时,重点在于全面的功能和高性价比。好工具应具备资源利用图(避免过度分配或闲置资源),团队协作功能(促进沟通与进度追踪),质量管理(如问题跟踪和自定义工作流),项目规划和跟踪(甘特图支持),任务管理(任务分解和依赖关系),以及费用跟踪。Zoho Projects、Microsoft Project、Jira等工具各有价格差异,例如,对于50个用户,Microsoft Project最贵,Zoho Projects最实惠,性价比高,适合中小企业。
166 2
|
9月前
|
Rust NoSQL 中间件
EAR_v3 《浮声三》 智能化图书管理系统
浮声三 EAR_v3,基于 Actix_Web 框架的智能化图书管理系统,版本 2.1.2,由 Rusty_Borders 的在线控制系统演变而来。该项目采用 Rust 语言编写,依赖库有 Actix_Web、Tokio、OpenSSL 等,提供用户注册登录、借阅归还图书、单会话、集中身份检查等服务。是此版本使用 MySQL 作为数据库,Redis 作为高速缓存,并且实现了 SSL 加密传输,确保了安全性和高效性。项目遵循 GPL v2.0 协议。
235 2
EAR_v3 《浮声三》 智能化图书管理系统
|
人工智能 云栖大会
2024云栖大会,我们来了!
2024云栖大会亮点介绍
492 1
|
机器学习/深度学习 资源调度 PyTorch
面向大规模分布式训练的资源调度与优化策略
【8月更文第15天】随着深度学习模型的复杂度不断提高,对计算资源的需求也日益增长。为了加速训练过程并降低运行成本,高效的资源调度和优化策略变得至关重要。本文将探讨在大规模分布式训练场景下如何有效地进行资源调度,并通过具体的代码示例来展示这些策略的实际应用。
1315 1
|
关系型数据库 MySQL 数据库
RDS for MySQL8.0物理备份恢复到本地自建数据库
此文章是centos7下的恢复流程。 1、安装MySQL8.0(采用yum方式安装):wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm yum localinstall mysql80-community-release-el7-1.noarch.rpm yum -y install yum-utils 默认安装的就是8.0版本yum install mysql-community-server 安装好了不要启动数据库。
|
弹性计算 关系型数据库 MySQL
阿里云MySQL云数据库优惠价格、购买和使用教程分享!
阿里云数据库使用流程包括购买和管理。首先,选购支持MySQL、SQL Server、PostgreSQL等的RDS实例,如选择2核2GB的MySQL,设定地域和可用区。购买后,等待实例创建。接着,创建数据库和账号,设置DB名称、字符集及账号权限。最后,通过DMS登录数据库,填写账号和密码。若ECS在同一地域和VPC内,可内网连接,记得将ECS IP加入白名单。
1192 2
|
云安全 安全 网络安全
云端防御策略:云计算环境下的网络安全与信息保护
【5月更文挑战第30天】在数字化时代,云计算为企业提供了高效、弹性和可扩展的资源管理方式,但同时也带来了新的安全挑战。本文深入探讨了云计算环境中面临的主要安全威胁,包括数据泄露、身份盗用、服务中断等,并提出了多层次的防御策略,以保障云服务的安全性和数据的完整性。通过分析当前的加密技术、访问控制机制、入侵检测系统以及合规性监管措施,本文旨在为使用云服务的组织提供一个全面的网络安全指南,确保其业务在云端运行的同时,信息安全得到妥善保护。
144 4
|
索引 Python
Pandas 2.2 中文官方教程和指南(二十五·二)(2)
Pandas 2.2 中文官方教程和指南(二十五·二)
77 1
Python语言如何使用MindOpt建模并求解混合整数线性规划问题
MindOpt是一款高效的优化算法软件包,求解算法实现了线性规划(LP)、混合整数线性规划(MILP)、二次规划(QP),可以支持命令行、c、c++、java和python调用。接下来我们将发布一系列文章,讲述各个语言如何使用 MindOpt 来求解数学规划问题。
Python语言如何使用MindOpt建模并求解混合整数线性规划问题
|
Linux 数据安全/隐私保护
CentOS7强制修改密码
CentOS7强制修改密码
519 0
CentOS7强制修改密码