事务属性控制事务的作用域。
事务属性可以是如下几个值之一:
Required,RequiresNew,Mandatory,NotSupported,Supports,Never.
1、Required
如果客户端正运行在某个事务中运行,且调用了EJB中的方法,则该方法在客户端的事务中运行。如果客户端没有与某个事务相关联,则容器在运行方法前先启动一个新事务。
Required属性适合绝大多数事务,建议把它设置成默认的,至少在开发阶段。事务属性是声明式的,后期也可以很容易的修改。
2、RequiresNew
如果客户端运行在某个事务中,并且调用了EJB中的方法,则容器将采用如下操作:
(1) 挂起客户端事务
(2) 启动一个新事务
(3) 把调用委派给方法
(4) 方法执行完毕之后,回复客户端事务
如果客户端没有与某个事务相关联,则容器在运行方法前先启动一个新事务。
如果确保方法始终在一个新事务中运行,应该使用RequiresNew属性。
3、Mandatory
如果客户端运行在某个事务中且调用了EJB中的方法,则该方法运行在客户端事务中。
如果客户端没有与某个事务相关联,则容器抛出TransactionRequiredException。
如果EJB中的方法必须使用客户端的事务,则应该使用Mandatory属性。
4、NotSupported
如果客户端在某个事务中运行且调用了EJB中的方法,则容器先挂起客户端事务,调用方法结束之后回复客户端事务。
如果客户端没有与某个事务相关联,则容器在运行方法前不启动事务
对于不需要事务的方法,可以考虑该属性。事务需要一定的开销,NotSupported属性可以提高性能。
5、Supports
如果客户端运行在某个事务中且调用了EJB中的方法,则该方法运行在客户端的事务中。
如果客户端没有与某个事务关联,则容器运行方法前不启动新的事务。
6、Never
如果客户端运行在某个事务中且调用了EJB中的方法,则容器抛出RemoteException异常。如果客户端没有与某个事务关联,则容器运行方法之前不启动新的事务。
分享到:
相关推荐
在深入探讨EJB(Enterprise JavaBeans)的事务属性之前,我们先来理解一下EJB的基本概念及其在企业级应用中的重要性。EJB是Java EE平台的核心组件之一,主要用于构建可扩展、健壮且安全的企业级应用程序。它提供了一...
Bean管理的事务需要开发者自己编写代码来控制事务的开始和提交,而容器管理的事务则由EJB容器自动处理,开发者只需要在ejb-jar.xml中声明事务属性,容器会根据这些属性自动进行事务管理,简化了编程工作。...
3. **EJB事务属性** - **REQUIRED**: 默认属性,如果当前没有事务,容器会创建一个新的事务。 - **REQUIRES_NEW**: 创建一个新的事务,即使当前存在事务,新事务也会独立于当前事务运行。 - **MANDATORY**: 如果...
EJB3.0引入了注解,如`@TransactionAttribute`,可以轻松地在方法级别声明事务属性。例如,`@TransactionAttribute(TransactionAttributeType.REQUIRED)`表示如果当前没有事务,容器会开始一个新的;`@...
2. **配置文件**:如`persistence.xml`,用于配置JPA实体管理和事务属性。 3. **测试代码**:演示如何启动一个跨越多个bean的事务,展示EJB3和JBoss AS7对分布式事务的支持。 4. **部署描述符**:如`ejb-jar.xml`或`...
1. EJB事务属性: - TX_REQUIRED:这是最常见的事务属性,它表示方法必须在事务上下文中执行。如果调用者已经在事务中,那么方法将在该事务中运行;如果不在,服务器将为方法创建一个新的事务。 - TX_SUPPORTS:这...
13. **EJB事务属性**:在EJB中,`Supports` 属性表示方法调用可以参与到当前运行的事务中,但如果不存在事务上下文,它不会创建新的事务。`Required` 属性要求方法必须在事务上下文中执行,如果不存在则抛出异常。`...
通过将业务逻辑与基础架构关注点(如事务管理、安全性、持久性和并发控制)分离,EJB允许开发者专注于核心业务逻辑的实现,而将非功能性的复杂性交由容器来处理。 **EJB体系结构** EJB体系结构主要包括三个主要...
1. 声明式事务管理:通过在Bean的部署描述符(deployment descriptor)中定义事务属性来设置事务的边界。例如,你可以指定一个方法是在一个新事务中运行,还是在一个已经存在的事务中运行。 2. 编程式事务管理:...
13. **EJB事务属性**:在EJB中,"Required"事务属性表示如果调用方法时没有事务上下文,容器会自动创建一个新的事务。 14. **Java字节代码解释执行**:Java虚拟机(JVM)负责解释执行字节码,它是Java应用程序的...
13. **EJB事务属性**:`Required`表示方法必须在事务上下文中执行,如果不存在则抛出异常。 14. **Java字节码执行**:虚拟机(JVM)负责解释执行Java字节码,并负责内存管理和垃圾回收。 15. **等价类划分**:等价...
- 探讨典型的Web应用classloader结构,EJB事务属性及其差异,以及StatefulSessionBean的生命周期。 - 讨论JMS的消息模型,以及在EJB容器中如何控制事务。 8. **开源框架与库**: - 询问候选人对Spring框架的使用...
EJB提供强大的事务管理能力,可以设置不同的事务属性,比如所需的事务级别、传播行为等,确保数据的一致性和完整性。 **安全性**: EJB支持角色基础的访问控制(RBAC),允许对EJB方法的调用进行权限验证,以确保...
- **事务管理**:EJB支持声明式事务管理,开发人员只需在方法上添加事务属性,容器就会自动处理事务的开始、提交或回滚。 - **安全性**:EJB可以集成Java EE的安全框架,允许细粒度的角色基线访问控制,确保只有...
Javabean技术则是EJB的一个基础,javabean是一种符合特定规范的Java类,它具有属性、getter和setter方法,以及一个默认构造器。Javabeans通常用于构建EJB组件的表示层,或者作为客户端与EJB之间的数据载体。 在...
EJB3的bean默认支持声明式事务管理,即通过注解如`@TransactionAttribute`来定义事务的边界和策略。 通过这个PPT教程,你将全面了解EJB3的各种组件和它们在实际开发中的应用。理解并掌握这些知识点,你就能更有效地...
5. **事务管理**:EJB支持事务属性,如Required、RequiresNew、Mandatory、NotSupported、Supports和Never,它们决定了事务如何在EJB方法调用中传播。 6. **安全性**:EJB提供了角色基的安全机制,允许对bean的方法...
3. **创建部署描述符**:`ejb-jar.xml`文件包含了EJB组件的元数据,如名称、事务属性和依赖关系。 4. **编译和部署**:编译源代码并打包成`ejb-jar`文件,然后使用EJB容器的工具进行部署。 5. **编写客户端程序**:...
在EJB项目中,部署描述符(如ejb-jar.xml)定义了Bean的行为和配置信息,包括Bean的接口、实现类、事务属性、安全性设置等。`testEJBProject`可能包含了项目的源代码、资源文件以及部署描述符。 4. **客户端调用**...
3. 配置EJB,如定义远程接口、事务属性和安全角色。 4. 测试EJB,通过客户端应用调用EJB方法,验证其功能和性能。 5. 部署和运行EJB应用,将项目打包成JAR或EAR文件,然后在Java EE应用服务器上部署。 通过这个**...