Spring 的声明式事物<06>
来源:互联网 发布:淘宝嘉联华 编辑:程序博客网 时间:2024/05/21 10:17
首先我们知道Spring 的声明式事务包括2种:
1.编程式事务:
通过代码的方式进行实现(此方法较复杂,不建议采用)
2.声明式事务:
通过在配置文件中配置和事务相关的信息。
在Spring 框架中,声明式事务是以AOP 思想为基础的。
3.声明式事务的步骤:
1):在IOC 容器中配置事务管理器的bean
<!-- 配置事务管理器的bean --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 需要装配数据源对象 --><property name="dataSource" ref="dataSource"/></bean>
2):开启基于注解的事务管理功能,并指定当前要使用的事务管理器对象。
<!-- 开启基于注解的事务功能 --><!-- 如果事务管理器的bean的id正好是:transactionManager,则transaction-manager属性可以省略 --><tx:annotation-driven transaction-manager="transactionManager"/>
3):在要进行事务管理的方法上加@Transactional
@Transactionalpublic void updateBookPrice(String isbn, int newPrice) {bookShopDao.updateBookPrice(isbn, newPrice);}
4.基于XML 文档配置的声明式事务:
1):配置数据源对应的bean
<!-- 配置数据源的bean --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="user" value="${user}"/><property name="password" value="${password}"/><property name="jdbcUrl" value="${jdbcUrl}"/><property name="driverClass" value="${driverClass}"/></bean>
2):配置事务管理器
<!-- 配置事务管理器bean --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean>
3):配置事务属性
<!-- 配置事务属性 --><!-- advice对象需要指定id,便于其他位置引用 --><!-- advice对象需要指定当前事务管理器 --><tx:advice id="bookTransaction" transaction-manager="transactionManager"><tx:attributes><!-- 可以根据事务方法的前缀,统一设置事务属性 --><tx:method name="find*" read-only="true"/><tx:method name="get*" read-only="true"/><!-- 设置事务具体属性 --><tx:method name="purchase" isolation="READ_COMMITTED"/><!-- tx:method name="*"表示对所有方法都使用默认设置 --><tx:method name="*"/></tx:attributes></tx:advice>
4):配置事务切面并和事务属性关联起来
<!-- 配置事务切面 --><aop:config><!-- 配置应用事务的方法对应的切入点 --><aop:pointcut expression="execution(* com.tx.component.service.BookShopServiceImpl.purchase(String, String))" id="bookPointCut"/><!-- 将事务属性和切入点关联起来 --><aop:advisor advice-ref="bookTransaction" pointcut-ref="bookPointCut"/></aop:config>
1 0
- Spring 的声明式事物<06>
- Spring声明式事物
- spring 声明式事物
- spring的声明式事物的配置
- Spring声明式事物的配置
- Spring声明式事物的配置
- spring声明式事物控制的注意事项
- spring的声明式事物管理
- spring AOP事物管理(声明式事物)
- Spring 声明式事物详解
- Spring声明式事物配置
- Spring声明式事物配置不起作用的常见原因
- java三大框架之spring的声明式事物
- spring声明式事物的两种配置方式
- Spring事物分析(2):声明式事物实现的原理
- Spring 声明式事物 和 编程式事物
- spring集成hibernate声明式事物
- Spring之声明式事物管理
- C# 自定义格式字符串随笔(IFormattable,IFormatProvider,ICustomFormatter三接口的实现)
- CSS盒模型[下]
- oracle-SQL Plan Directive
- 用swift封装了一个关于 AFNetworking的类
- python selenium expected_conditions使用实例
- Spring 的声明式事物<06>
- Linux网络编程--网络编程基本原理
- Qt中 QString 和int, char等的“相互”转换
- HDU 2767
- UGUI的优先级
- Qt “无法解析的外部符号 未找到文件 ***.obj”
- ICE - 企业使用的工具
- python数据类型详解
- Android基础面试题集