`
I_conquer
  • 浏览: 24548 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

spring配置事务的传播特性

阅读更多

基本的六种事务传播: 

1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启 
2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行 
3. PROPAGATION_MANDATORY: 如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。 
4. PROPAGATION_REQUIRES_NEW: 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。 
5. PROPAGATION_NOT_SUPPORTED: 总是非事务地执行,并挂起任何存在的事务。 
6. PROPAGATION_NEVER: 总是非事务地执行,如果存在一个活动事务,则抛出异常 

 

Spring配置声明式事务: 

* 配置SessionFactory 
* 配置事务管理器 
* 事务的传播特性 
* 那些类那些方法使用事务 

 

<!-- 配置sessionFactory -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mappingDirectoryLocations">
			<list>
				<value>
					classpath:com/XXX/po
				</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
                <prop key="hibernate.show_sql">true</prop> 
                <prop key="hibernate.format_sql">true</prop>          
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>  
                <!-- 
                <prop key="hibernate.hbm2ddl.auto">update</prop> 
                <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
                <prop key="hibernate.cache.use_query_cache">true</prop>
                <prop key="hibernate.cache.use_second_level_cache">true</prop>
                 -->
                <!-- 
                 -->
			</props>
		</property>
	</bean>

<!-- 配置事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>

	<!-- 配置事务的传播特性 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="insert*" propagation="REQUIRED" />
			<tx:method name="add*" propagation="REQUIRED" />
			<tx:method name="del*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="doTransction" propagation="REQUIRED" />
			<tx:method name="*" read-only="true" />
		</tx:attributes>
	</tx:advice>
	<!-- 
	 -->

	<!-- 那些类的哪些方法参与事务 -->
	<aop:config>
		<aop:pointcut id="allManagerMethod"
			expression="execution(* com.XXX.service.impl.*.*(..))" />
		<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" />
	</aop:config>

 

分享到:
评论

相关推荐

    Spring2.5和Hibernate3集成--学习spring aop ioc

    * 配置事务的传播特性 * 配置哪些类哪些方法使用事务 2.编写业务逻辑方法 * 继承HibernateDaoSupport类,使用this.HibernateTemplate这个类持久化数据 * HibernateTemplate是对session的轻量级的封装 * 默认...

    spring applicationContext 配置文件

    -- 配置事务的传播特性 --&gt; *" propagation="REQUIRED"/&gt; *" propagation="REQUIRED"/&gt; *" propagation="REQUIRED"/&gt; *" propagation="REQUIRED"/&gt; *" read-only="true"/&gt; &lt;/tx:advice&gt; &lt;!...

    高级开发spring面试题和答案.pdf

    传播特性有几种?7种; 某一个事务嵌套另一个事务的时候怎么办? REQUIRED_NEW和REQUIRED区别 Spring的事务是如何回滚的,实现原理; 抽象类和接口的区别,什么时候用抽象类什么时候用接口; StringBuilder和...

    spring.doc

    2.2 Spring配置文件 7 2.3 Spring API 8 3 Spring基本功能详解 8 3.1 SpringIOC 8 3.2别名Alias 11 别名拓展: 11 3.3 Spring容器内部对象的创建 12 Spring容器内部对象创建拓展: 12 3.3.1使用类构造器实例化(默认...

    Spring声明式数据库事务的使用-隔离级别

    上面我们只是简单的使用事务,这里将讨论Spring事务机制中最重要的两个配置项,即隔离级别与传播行为。毫无疑问本节内容是本章的核心内容,也是互联网企业最关注的内容之一,因此他十分重要,值得花费大的篇幅去讨论...

    Spring.3.x企业应用开发实战(完整版).part2

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    Spring中文帮助文档

    9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. 使用PlatformTransactionManager 9.7. 选择编程式事务管理还是声明...

    Spring API

    9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. 使用PlatformTransactionManager 9.7. 选择编程式事务管理还是声明...

    Spring3.x企业应用开发实战(完整版) part1

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    Spring_Hibernate集成

    * 配置事务管理器 * 事务的传播特性 * 那些类那些方法使用事务 2、编写业务逻辑方法 * 继承HibernateDaoSupport类,使用HibernateTemplate来持久化,HibernateTemplate是 Hibernate Session的轻量级封装 * ...

    ssh(structs,spring,hibernate)框架中的上传下载

     由于Spring通过代理Hibernate完成数据层的操作,所以原Hibernate的配置文件hibernate.cfg.xml的信息也转移到Spring的配置文件中:  代码 4 Spring中有关Hibernate的配置信息 1. 2. !-- 数据源的配置 //--> 3. ...

    ssh框架在application.xml中配置数据源所需jar

    -- 配置事务的传播特性 --&gt; *" propagation="REQUIRED"/&gt; *" propagation="REQUIRED"/&gt; *" propagation="REQUIRED"/&gt; *" read-only="true"/&gt; &lt;!-- 那些类的哪些方法参与事务 --&gt; (* ...

    xorm:xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常正确。本库是基于原版xorm的定制增强版本,为xorm提供类似ibatis的配置文件及动态SQL支持,支持AcitveRecord操作

    特性支持Struct和数据库表之间的灵活映射,并支持自动同步事务支持,支持嵌套事务(支持类JAVA Spring的事务传播机制)同时支持原始SQL语句和ORM操作的混合执行使用连写来简化调用支持使用Id,In,Where,Limit,...

    数据管理平台 Apache Geode.zip

    集成 Spring 框架来加速和简化高可扩展、高并发和事务型企业级应用的开发复杂度.JTA 兼容的事务支持.集群的配置可以写到文件中和导出到其他集群中.通过HTTP做 远程集群管理.基于REST应用开发的REST APIs.滚动升级是...

    idea本地调试leetcode-mysc:java系列

    事务隔离级别和传播特性 iii. mysql 索引 b+树和二叉树区别,聚簇索引() redis 使用场景 分布式锁使用过的命令 session 服务实现 原理使用 ZooKeeper 介绍TCP/IP协议 介绍UDP和TCP协议的区别 介绍DNS域名解析过程 ...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【Spring】Spring声明式事务的五个特性 94 传播性 94 隔离级别 95 只读 96 事务超时 97 回滚规则 97 【Spring】SpringMVC请求处理流程 97 【Mybatis】MyBatis中使用#和$书写占位符有什么区别? 100 【Mybatis】...

    壹脉智能名片V3.5.0小程序部分页面前端代码main.vue

     壹脉智能销售系统具有人力成本低、效率高、信息全、模板丰富等特点,适用于几乎所有有销售需求的场景和企业,尤其是高客单、低频次消费群的商户,如房产、教育、金融、汽车、婚庆、医疗等。 名片小程序 · 1.【新...

Global site tag (gtag.js) - Google Analytics