Spring框架之事务管理 Spring框架中的事务管理是指在应用程序中对数据库事务的管理,确保多个操作的原子性、一致性、隔离性和持久性。事务管理是Spring框架中非常重要的一部分,本文将详细介绍Spring框架中的事务管理。 编程式事务管理是指使用编程语言来控制事务的提交和回滚,通过编写代码来实现事务管理。Spring框架提供了PlatformTransactionManager接口,用于定义事务管理器的接口。开发者可以通过实现该接口来创建自己的事务管理器。 声明式事务管理是指使用XML配置文件或注解来定义事务管理的规则,Spring框架会自动将事务管理器与业务逻辑相关联。声明式事务管理的优点是可以将事务管理的逻辑与业务逻辑分离,提高了系统的灵活性和可维护性。 在Spring框架中,基于XML的事务管理是指使用XML配置文件来定义事务管理的规则。下面是一个简单的示例配置: ```xml <!-- 配置c3p0数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="root"></property> <property name="password" value="hss325730"></property> <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/test"></property> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> </bean> <!-- 配置Spring的JdbcTemplate --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置Bean --> <bean id="bookDao" class="com.zhoujian.spring.transcation.xml.BookDaoImpl"> <property name="tempate" ref="jdbcTemplate"></property> </bean> <bean id="bookService" class="com.zhoujian.spring.transcation.xml.service.impl.BookServiceImpl"> <property name="dao" ref="bookDao"></property> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置事务管理器属性 并与事务管理器关联--> <tx:advice id="myAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- 在这里一般都是使用通配符进行配置, 或者直接配置指定的方法 --> <tx:method name="buy" propagation="REQUIRES_NEW"/> <tx:method name="get*" propagation="REQUIRED"/> <tx:method name="*"/> </tx:attributes> </tx:advice> <!-- 配置开启事务的切入点,使用AOP进行切入点的配置,并与事务管理器属性关联起来 --> <aop:config> <aop:pointcut expression="execution(* com.zhoujian.spring.transcation.xml.service.*.*(..))" id="myPointcut"/> <aop:advisor advice-ref="myAdvice" pointcut-ref="myPointcut"/> </aop:config> ``` 在上面的配置中,我们定义了一个数据源、JdbcTemplate、DAO、Service和事务管理器,并使用AOP来配置事务管理器的切入点。事务管理器的配置使用了tx命名空间,用于定义事务管理器的属性。 在业务类中,我们可以使用注解方式来定义事务管理的规则,例如: ```java @Transactional public class BookServiceImpl implements BookService { @Autowired private BookDao bookDao; @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public void buyBook() { // 业务逻辑 } } ``` 在上面的代码中,我们使用了@Transactional注解来定义事务管理的规则,并指定了事务的传播性为REQUIRES_NEW,表示每次调用buyBook方法时都会开启一个新的事务。























- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 网络卫士安全隔离与信息交换系统技术培训.pptx
- 信息安全体系结构信息系统安全体系研究.pptx
- 扩频通信中直接扩频系统的同步技术.doc
- (源码)基于ESP8266芯片的环境监测系统.zip
- 基于思维导图的网络营销课程教学改革与实践.pdf
- 数字图像处理技术-第02章-MATLAB图像处理简介.ppt
- 2023年9月计算机等级考试二级C语言上机题库100套光碟拷贝版.doc
- sybyl软件与计算机辅助药物设计.pptx
- 最新网络营销工作总结.docx
- 中南大学工程项目管理第三章工程项目投资控制.pptx
- 热油系统安全运行措施.doc
- 计算机信息网络安全检查项目表.doc
- 小学教师计算机培训工作总结.docx
- 中国电信主要网络介绍.ppt
- 软件工程导论习题答桉.doc
- 楼宇自动化与系统集成解决方案--浙大中控.doc


