1、直接代码如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 此处省略N个字。。。。。 <!-- 事务处理器 --> <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" read-only="true"></tx:method> <tx:method name="find*" read-only="true"></tx:method> <tx:method name="login" read-only="true"></tx:method> <tx:method name="save*" rollback-for="Exception"></tx:method> <tx:method name="edit*" rollback-for="Exception"></tx:method> <tx:method name="del*" rollback-for="Exception"></tx:method> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut expression="execution(* edu.wanghuan.hrm.services.impl.*.*(..))" id="serviceMethod"/> <aop:advisor advice-ref="transactionAdvice" pointcut-ref="serviceMethod"/> </aop:config> </beans>
2、解释
要点一:execution(* com.hisun.mvc.service..*.*(..))"中几个通配符的含义:
第一个 * —— 通配 任意返回值类型
第二个 * —— 通配 包com.hisun.mvc.service下的任意class
第三个 * —— 通配 包com.hisun.mvc.service下的任意class的任意方法
第四个 .. —— 通配 方法可以有0个或多个参数
综上:包com.hisun.mvc.service下的任意class的具有任意返回值类型、任意数目参数和任意名称的方法。
要点二:<tx:advice/> 有关的设置
这一节里将描述通过 <tx:advice/>
标签来指定不同的事务性设置。默认的 <tx:advice/>
设置如下:
-
事务传播设置是
REQUIRED
-
隔离级别是
DEFAULT
-
事务是 读/写
-
事务超时默认是依赖于事务系统的,或者事务超时没有被支持。
-
任何
RuntimeException
将触发事务回滚,但是任何 checkedException
将不触发事务回滚这些默认的设置当然也是可以被改变的。
要点三:<tx:advice/> 和 <tx:attributes/>
标签里的 <tx:method/>
各种属性设置总结
属性 | 是否需要 | 默认值 | 描述 |
name | 是 |
与事务属性关联的方法名。 通配符(*)可以用来指定一批关联到相同的事务属性的方法。 如: |
|
propagation | 否 | REQUIRED | 事务传播行为 |
isolation | 否 | DEFAULT | 事务隔离级别 |
timeout | 否 | -1 | 事务超时的时间(以秒为单位) |
read-only | 否 | false | 事务是否只读? |
rollback-for | 否 | 将被触发进行回滚的 Exception(s) ;以逗号分开。 如:'com.foo.MyBusinessException,ServletException'
|
|
no-rollback-for | 否 |
不 被触发进行回滚的 Exception(s) ;以逗号分开。 如:'com.foo.MyBusinessException
|
相关推荐
本项目是关于如何使用Spring MVC与Hibernate结合来实现事务管理的实践教程,通过MyEclipse自动生成所需的包和配置文件。这里将详细讲解这一过程,以及涉及到的关键知识点。 首先,Spring MVC作为Spring框架的一部分...
在Spring框架中集成和配置Hibernate事务管理是企业级Java应用中的常见实践,它能提供高效且灵活的事务处理策略。Spring作为一款强大的依赖注入(DI)和面向切面编程(AOP)容器,能够轻松地管理和协调不同数据访问...
最后,我们可以在测试类中使用`@RunWith(SpringJUnit4ClassRunner.class)`和`@ContextConfiguration`注解来加载Spring配置,并进行事务相关的测试。 总的来说,Spring 3和Hibernate 4结合使用声明式事务管理,使得...
`HibernateTransactionManager`是Spring提供的专门用于管理Hibernate事务的类,它会自动处理Hibernate Session和JDBC Connection的开启、提交、回滚。 三、配置Spring事务管理 在Spring的配置文件中,我们需要添加...
在Spring配置文件中,我们需要开启事务管理器,并在需要事务控制的Service层方法上添加`@Transactional`注解。这个注解允许我们指定事务的传播行为(如REQUIRED、REQUIRES_NEW等)、隔离级别(如READ_COMMITTED、...
4. **配置DataSource**:同样在Spring配置文件中,定义一个DataSource Bean,这通常是连接池的实现,如Apache DBCP或C3P0,用于管理数据库连接。 5. **配置Hibernate SessionFactory Bean**:使用`...
8. **整合步骤**:创建Spring配置,配置数据源、SessionFactory、事务管理器;在Hibernate实体类上添加`@Entity`等注解;在DAO或Service层方法上添加`@Transactional`注解;最后,启动Spring容器并运行应用,事务...
2. Hibernate事务管理:使用`HibernateTransactionManager`结合SessionFactory进行事务控制。 3. AOP(面向切面编程)在事务管理中的应用:`TransactionInterceptor`基于AOP拦截方法调用,处理事务。 4. 配置事务...
在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...
2. **Hibernate事务**: Hibernate本身也提供了一种事务管理机制,但在Spring环境中,我们通常使用Spring的事务管理器来协调。当@Transactional注解应用于方法上,Spring会在该方法执行前后自动管理事务的开始和结束...
要启用注解事务管理,需要在Spring配置文件中添加`<tx:annotation-driven/>`元素,并配置数据源和事务管理器,如`PlatformTransactionManager`。 2. **Spring整合Hibernate实现事务处理 - XML方式** 对于不熟悉...
3. **Hibernate事务配置:**在Spring中,需要配置Hibernate SessionFactory,并将其注入到需要进行数据库操作的服务中。同时,通过`PlatformTransactionManager`接口(如HibernateTransactionManager)配置事务管理...
在"声明式事务控制,spring2.5+hibernate3集成源码"中,开发者可以学习如何配置Spring的事务管理器,以及如何在Hibernate的SessionFactory和SessionFactoryBuilder上使用Spring的TransactionProxyFactoryBean来创建...
整合Spring3和Hibernate3,主要是为了利用Spring的事务管理和数据访问抽象层来简化Hibernate的使用。以下是整合过程中的一些关键知识点: 1. **配置Spring的Hibernate支持**:在Spring的配置文件中,我们需要定义...
- 首先,我们需要在Spring配置文件中启用事务管理器,通常是`HibernateTransactionManager`,并配置数据源。 - 然后,启用AOP代理,以便Spring可以在适当的时候处理事务。 2. **配置Hibernate**: - 创建...
通过阅读博文"TransactionInSpringAOP",开发者可以获得关于如何配置Spring AOP以管理Hibernate事务的具体步骤,以及可能遇到的问题和解决方案。这包括但不限于XML配置、Java配置、注解配置等不同方式,并且可能涵盖...
3. 配置Hibernate:在Spring配置文件中,配置Hibernate的SessionFactory,并设置数据库连接信息。同时,需要编写实体类和对应的映射文件(`.hbm.xml`),以便Hibernate能够自动管理数据库表。 4. 配置Struts2:创建...
3. **事务管理**:Spring提供全局事务管理,确保业务操作的原子性和一致性。 4. **方便测试**:通过Spring的依赖注入,便于进行单元测试和集成测试。 在实际项目中,开发者通常会结合IDE(如Eclipse或IntelliJ IDEA...
在Spring框架中配置Hibernate事务管理是一项关键任务,它允许开发者以声明式的方式处理数据库操作的事务性,确保数据的一致性和完整性。以下是如何在Spring中配置Hibernate事务的详细步骤和概念解释。 首先,理解...
3. 配置事务管理器:在Spring配置文件中,定义一个PlatformTransactionManager类型的bean,通常是HibernateTransactionManager,它将与SessionFactory配合处理事务。 4. 使用AOP声明事务:在DAO方法上使用`@...