EJB的三种组件

2024-08-25 15:32
文章标签 组件 三种 ejb

本文主要是介绍EJB的三种组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

EJB(Enterprise JavaBeans)是使用Java语言构造可移植的、可重用的和可伸缩的业务应用程序平台。EJB是EJB容器的特定运行时环境中执行的一段java代码,容器提供若干组件服务。
EJB组件有三种类型:
  • 会话bean;
  • 消息驱动bean;
  • 实体;
会话bean和消息驱动bean用于实现EJB应用程序的业务逻辑,而实体用于持久化。


如图,EJB3 API的整体组织情况。java持久化API完全独立于EJB3容器。业务逻辑处理由两组件:会话bean,消息驱动bean容器管理。持久化对象成为实体,由持久化提供器通过EntityManager接口管理。
会话bean
会话bean有两种类型:有状态(stateful)和无状态(stateless)。既可以在本地调用会话bean,也可以使用Java RMI远程调用。无状态会话bean可以暴露为Web服务。
消息驱动bean
与会话bean一样,MDB也处理业务逻辑。但是,MDB在一个重要方面有所不同:客户端从不直接调用MDB方法。相反,有发送到消息服务器的消息触发MDB,这样就允许在系统组件之间发送异步消息。典型的消息服务器有IBM WebSphere MQ、Oracle Advanced Queueing 和TIBCO。MDB通常用于健壮系的集成和异步处理。
实体和JPA
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。持久化就是把java对象内包含的数据自动存储到数据库中。EJB3中的持久化由JPA管理。ORM在本质上是使用配置把java对象中保存的数据映射到数据库表的过程。持久化提供器在本质上是支持EJB3 Java持久化API(JPA)的ORM框架。
JPA定义了如下标准:
  • 用于把实体映射到数据表的ORM配置元数据的创建;
  • EntityManager API——用于对实体执行CRUD持久化操作的标准API;
  • Java持久化查询语言(JPQL),用于搜索和检索持久化应用程序数据。
因为JPA标准化了Java平台的ORM框架,所以你可以插入ORM产品(比如JBoss Hibernate、Oracle TopLink或BEA Kodo )作为应用程序和底层JPA“持久化提供器”。
使用API构造应用程序的持久化逻辑,就必须使用实体。实体是持久化到数据库中的java对象。
JPA EntityManager接口以设计提供持久化服务的方式管理实体。虽然实体通知JPA提供器如何映射到数据库,的是那会实体并不持久化自己。EntityManager接口从实体读取ORM元数据并且执行持久化操作。JPA提供处理生命周期管理、性能优化、缓存和事务管理的功能。

这篇关于EJB的三种组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105944

相关文章

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

React 记忆缓存的三种方法实现

《React记忆缓存的三种方法实现》本文主要介绍了React记忆缓存的三种方法实现,包含React.memo、useMemo、useCallback,用于避免不必要的组件重渲染和计算,感兴趣的可以... 目录1. React.memo2. useMemo3. useCallback使用场景与注意事项在 Re

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

详解Java中三种状态机实现方式来优雅消灭 if-else 嵌套

《详解Java中三种状态机实现方式来优雅消灭if-else嵌套》这篇文章主要为大家详细介绍了Java中三种状态机实现方式从而优雅消灭if-else嵌套,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录1. 前言2. 复现传统if-else实现的业务场景问题3. 用状态机模式改造3.1 定义状态接口3

redis中session会话共享的三种方案

《redis中session会话共享的三种方案》本文探讨了分布式系统中Session共享的三种解决方案,包括粘性会话、Session复制以及基于Redis的集中存储,具有一定的参考价值,感兴趣的可以了... 目录三种解决方案粘性会话(Sticky Sessions)Session复制Redis统一存储Spr

Python清空Word段落样式的三种方法

《Python清空Word段落样式的三种方法》:本文主要介绍如何用python-docx库清空Word段落样式,提供三种方法:设置为Normal样式、清除直接格式、创建新Normal样式,注意需重... 目录方法一:直接设置段落样式为"Normal"方法二:清除所有直接格式设置方法三:创建新的Normal样

把Python列表中的元素移动到开头的三种方法

《把Python列表中的元素移动到开头的三种方法》在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Pyth... 目录一、查找删除插入法1. 找到元素的索引2. 移除元素3. 插入到列表开头二、使用列表切片(Lis

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1