标签:nsa expr 实现 manager spring详解 man 增强 rri comm
1、作为企业级应用程序框架, Spring 在不同的事务管理 API 之上定义了一个抽象层. 而应用程序开发人员不必了解底层的事务管理 API, 就可以使用 Spring 的事务管理机制。
2、Spring 既支持编程式事务管理, 也支持声明式的事务管理。
3、编程式事务管理: 将事务管理代码嵌入到业务方法中来控制事务的提交和回滚. 在编程式管理事务时, 必须在每个事务操作中包含额外的事务管理代码。
4、声明式事务管理: 大多数情况下比编程式事务管理更好用. 它将事务管理代码从业务方法中分离出来, 以声明的方式来实现事务管理.
事务管理作为一种横切关注点,可以通过 AOP 方法模块化. Spring 通过 Spring AOP 框架支持声明式事务管理。
Spring 从不同的事务管理 API 中抽象了一整套的事务机制. 开发人员不必了解底层的事务 API, 就可以利用这些事务机制. 有了这些事务机制, 事务管理代码就能独立于特定的事务技术了.
Spring 的核心事务管理抽象是 它为事务管理封装了一组独立于技术的方法. 无论使用 Spring 的哪种事务管理策略(编程式或声明式), 事务管理器都是必须的.
<!--声明事物管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!--声明事物通知--> <tx:advice id="advice" transaction-manager="transactionManager"> </tx:advice> <!--声明 事务通知需要通知方法(即需要进行事务管理的方法)--> <aop:config> <aop:pointcut expression="execution(* com.zhiyou100.zjc.service.*.*(..))" id="pointcut"/> <aop:advisor advice-ref="advice" pointcut-ref="pointcut"/> </aop:config>
用 @Transactional 注解声明式地管理事务配置文件示例代码
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <tx:annotation-driven/>
@Service public class BookShopCashier implements Cashier { @Autowired private BookShopService bookshopservice; @Override @Transactional public void checkput(List<String> isbn, String username) { // TODO Auto-generated method stub for(String i:isbn) { bookshopservice.purchase(i, username); } } }
Spring 支持的事务传播行为(红框中较为常用)
REQUIRED 传播行为
REQUIRES_NEW 传播行为
另一种常见的传播行为是 REQUIRES_NEW. 它表示该方法必须启动一个新事务, 并在自己的事务内运行. 如果有事务在运行, 就应该先挂起它.
xml中设置传播行为
-----脏读: 对于两个事物 T1, T2, T1 读取了已经被 T2 更新但 还没有被提交的字段. 之后, 若 T2 回滚, T1读取的内容就是临时且无效的.
-----不可重复读:对于两个事物 T1, T2, T1 读取了一个字段, 然后 T2 更新了该字段. 之后, T1再次读取同一个字段, 值就不同了.
-----幻读:对于两个事物 T1, T2, T1 从一个表中读取了一个字段, 然后 T2 在该表中插入了一些新的行. 之后, 如果 T1 再次读取同一个表, 就会多出几行.
Spring 支持的事务隔离级别
标签:nsa expr 实现 manager spring详解 man 增强 rri comm
原文地址:https://www.cnblogs.com/zjc364259451/p/11504032.html