学习Spring事务管理

来源:互联网 发布:日本旅游注意事项知乎 编辑:程序博客网 时间:2024/06/06 06:45

什么是事物?事物指的是逻辑上的一组操作,这组操作要么全部成功要么全部失败。
Spring事务: 1,原子性 2,一致性 3,隔离性 4,持久性。
原子性:原子性是指事物是不可分割的工作单位,事物中的操作要么都发生要么都不发生。
一致性:事物数据完整性前后保持一致。
隔离性:隔离性是指多个用户同时并发访问数据库时,一个用户的事物不能被其他用户干扰,多个并发事务数据要隔离。
持久性:事物一旦被提交,它对数据库的改变是永久的,及时数据库发生故障也不应该对其有影响。

Spring事物管理的接口:

            1,`PlatfromTransactionManager`(事物管理器)               `DataSourceTransactionManager`(Mybatis   JDBC 用)            2,`TransactionDefinition`(事物定义信息(隔离,传播,超时,只读))            3,`TransactionStatus`(事物具体运行状态)

Spring事物管理:

基于Xml配置:

1,配置事物管理器

<bean id="transactionManager"class="DataSourceTransactionManager">        <property  name="dataSource" ref ="dataSource(数据库连接池的id)" /></bean>

2,配置事物

<tx:advice id = "txAdvice" transactionManager = "transactionManager"><tx:attributs><tx:method name="方法名 要去执行事物的方法"></tx:attributs></tx:advice>

配置切面:

<aop:config>//配置切入点<aop:pointcut expression="execution(包名+方法*(参数..))" id="pointcut1">                //加号代表子类,*所有方法,(..)不限定参数个数                //配置切面<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"/>                //aspect(多个切入点),advisor(单个切入点)</aop:config>

基于注解配置:

1,配置事物管理器

<bean id="transactionManager"class="DataSourceTransactionManager">        <property  name="dataSource" ref ="dataSource(数据库连接池的id)" /></bean>

2,开启注解事物
//注解驱动

<tx:annottation-driven transaction-manager="transactionManager"/>

3,配置注解
那个类上需要配置事物就在那个类上去添加注解(@Transactional)