-
配置事务管理器,配置业务层的代理
org.springframework.transaction.interceptor.TransactionProxyFactoryBean
测试的时候注入的是代理后的对象,就可以对方法进行事务管理了
查看全部 -
编程式事务的实现代码
查看全部 -
在service层注入dao层,1、含有dao层的成员变量,以及set方法;2、在配置文件中注入
public class MyAccountServiceImpl implements AccountService {
/**
* 注入转账的dao
*/
private AccountDao accountDao;
public void setAccountDao(AccountDao accountDao) {
this.accountDao = accountDao;
}<!--配置业务层的类-->
<bean id="service" class="com.ytcool.service.MyAccountServiceImpl">
<property name="accountDao" ref="accountDao"/>
</bean>查看全部 -
事务的隔离级别就是来解决并发安全问题的:SERIALIZABLE最安全,因为它的锁的粒度最大,直接会锁表。也导致了它执行起来效率最低
spring默认采用的DEFAULT隔离级别,也就是采用数据库默认的隔离级别,
Mysql默认采用REPEATABLE_READ.ORACLE默认采用READ_COMMITTED隔离级别
查看全部 -
org.springframework.transaction.TransactionDefinition 事务定义,包含事务的隔离级别、传播行为。
事务的四大特性:原子性、一致性(执行事务前后的数据完整性保持一致)、隔离性、持久性;
如果不考虑隔离性,会引发安全问题如下:脏读、不可重复读、幻读(虚读)
脏读:一个事务读取到另一个事务改写了但没有提交的数据;
不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同(读取到另一个事务提交的数据)
幻读(虚读)读取到另一个事务插入的一些记录
查看全部 -
org.springframework.transaction.PlatformTransactionManager 平台事务管理器,
org.springframework.transaction.PlatformTransactionManager#getTransaction
org.springframework.transaction.PlatformTransactionManager#commit
org.springframework.transaction.PlatformTransactionManager#rollback
org.springframework.transaction.TransactionDefinition
org.springframework.transaction.TransactionStatus
查看全部 -
1
查看全部 -
1
查看全部 -
xml
查看全部 -
transactionproxyfactorybean
查看全部 -
配置
查看全部 -
2
查看全部 -
编程式事务控制
查看全部 -
spring
查看全部 -
spring transaction interface
查看全部 -
1
查看全部 -
事务传播
查看全部
举报