Spring事务管理器的配置和使用
Spring事务管理器的配置和使用
1.为什么要配置spring事务管理器。
在将spring和hibernate结合之后,我们需要将事务管理交给spring管理。以保证数据的安全型,避免脏数据的出现。通过spring注入来完成此功能。
步骤1:在spring的配置文件中配置事务管理器
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
</bean>
步骤2:配置完事务管理器,需要给事务管理器加上各种参数。
<!-- 哪些方法需要Spring开启事务transaction-manager="transactionManager":指定事务管理器通知类型:Spring帮我们写好--><tx:advice transaction-manager="transactionManager" id="txAdvice"><tx:attributes><!--REQUIRED:需要开启事务 rollback-for:抛出哪些异常需要Spring回滚name="save*":以save开头的要开启事务rollback-for:抛出哪类异常(以及子类)的时候,Spring事务回滚,默认是RunTimeException--><tx:method name="save*" propagation="REQUIRED" rollback-for="Exception"/><tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/><tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception"/><!--其它方法,只能读 --><tx:method name="*" read-only="true"/></tx:attributes></tx:advice>
步骤3:指定那些类执行事务管理器,,可以将事务管理器也理解成一种通知类型。(通知类型可以理解成就是拦截器,配置及使用参照)一般来说都是放在Service层,因为放在Dao层来说,Dao层每次都是执行一条sql成功与否对其他的sql没影响。但是放到Service层当一条sql语句出现错误时,事务回滚
<!-- 配置AOP,目的:哪些类里面的哪些方法执行事务管理器--><aop:config><!-- 定义哪些类执行事务管理器推荐放到实现类上面(Service)--><aop:pointcut expression="execution(* com.bjsxt.*.service.impl.*.*(..))" id="pointcut"/><!-- 将事务管理器和横切面(pointcut)关联起来 --><aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/></aop:config>
以上三步配置完成之后,运行项目你会发现tomcat会给你报
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined
in file [F:\workspace\ssh_demo\build\classes\spring\applicationContext_common.xml]: Invocation of init method failed; nested exception is
org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to requested type [javax.sql.DataSource]
这段话的意思是说transactionManager我们配置的那个事务管理器找不到DataSource,我们需要将数据源也交给事务管理器
步骤4:配置数据源
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><!-- 驱动 --><property name="driverClassName" value="com.mysql.jdbc.Driver"/><!-- url --><property name="url" value="jdbc:mysql://localhost:3306/ssh"/><!-- 用户名 --><property name="username" value="root"/><!-- 密码 --><property name="password" value="199464"/></bean>
开启自动装备之后,开启自动装备transactionManager中的Datasource属性会被自动赋值。
完成以上操作,再执行就可以执行数据库的的增删改的错的了。
Spring事务管理器的配置和使用相关推荐
- spring事务管理器的作用_【面试必问】Spring中的事务管理详解
在这里主要介绍Spring对事务管理的一些理论知识,实战方面参考上一篇博文: http://www.cnblogs.com/longshiyVip/p/5061547.html 1. 事务简介: 事务 ...
- Spring事务管理器配置两种配置方法,使用方法
配置事务管理器 编程式事务管理: 要修改原来的代码,加入事务管理代码 (侵入性 )- 不推荐,不使用 声明式事务管理:底层就是AOP的环绕通知, - 推荐 用XML配置方式添加事务管理(tx.aop约 ...
- Spring事务管理——使用XML配置声明式事务
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.事务介绍 事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和 ...
- Spring事务管理器分类
Spring并不直接管理事务,事实上,它是提供事务的多方选择.你能委托事务的职责给一个特定的平台实现,比如用JTA或者是别的持久机制.Spring的事务管理器可以用下表表示: 事务管理器的实例 目标 ...
- java中事务实例,Java Spring 事务管理器入门例子教程(TranscationManager)
注:阅读本文之前请务必有上文的基础 本文我们使用的事务管理器(TranscationManager)的作用是保证一组数据库操作的原子性.保证在操作时,如果出现异常,事务管理器会将状态恢复到进行本组操作 ...
- Spring事务管理 与 SpringAOP
1,Spring事务的核心接口 Spring事务管理的实现有许多细节,如果对整个接口框架有个大体了解会非常有利于我们理解事务,下面通过讲解Spring的事务接口来了解Spring实现事务的具体策略. ...
- 什么是事务的传播_这么漂亮的Spring事务管理详解,你不来看看?
事务概念回顾 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事物的特性(ACID): 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用 ...
- Spring 事务管理高级应用难点剖析
Spring 事务管理高级应用难点剖析: 第 1 部分 http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts1/index.html htt ...
- Spring 事务管理高级应用难点剖析--转
第 1 部分 http://www.ibm.com/search/csass/search/?q=%E4%BA%8B%E5%8A%A1&sn=dw&lang=zh&cc=CN& ...
最新文章
- JDBC与数据库连接工具对比分析
- 英特尔成立物联网视频事业部,这届IESS还揭露了哪些信息?
- R语言时间序列(time series)分析实战:使用ARIMA模型预测时间序列
- .net WCF简单实例
- EditText / This text field does not specify an inputType or a hint
- Java的内存分配策略有哪些_Java的内存分配策略
- 几篇关于Hadoop+Hive数据仓库的入门文章
- auto_ptr解析
- 使用js代码将HTML Table导出为Excel
- 程序员面试金典 - 面试题 02.06. 回文链表(快慢指针+链表反转)
- 三维重建之环境搭建1-VS2017安装
- JavaMD5加密MD5Utils工具类
- 解决Windows10系统更新后自带的记事本不见了
- 基于C#的“密码学”实验演示系统的设计与实现、.NET下的RSA编程、各种密码学算法的C# GUI编程实现
- TFS工作项模板自定义指南
- 对sin(x)^n dx or cos(x)^n dx的计算验证过程以及结论
- 洛谷P1348 Couple number
- 今天面了个腾讯拿30k出来的,真是小母牛按门铃,牛逼到家了
- 官方授权正版 Grapher 中文网站 专业 2D、3D 绘图和统计分析软件, 深入了解您的数据软件
- 浙里办APP对接常见问题
热门文章
- 笔记本电脑在使用远程桌面全屏时关闭了连接栏怎么退出全屏
- TML5期末大作业:红色自适应网上鲜花网站设计——浪漫红色自适应网上鲜花店(16页) HTML+CSS+JavaScript 大学生鲜花网页作品 植物网页设计作业模板 学生网页制作源代码下载
- web网页设计与开发:旅游酒店网站设计——红色大气的度假酒店预订网站html模板(5页) HTML+CSS+JavaScript
- 适合不想露脸的普通人做,把一段文字制作成视频,一周挣了2564
- 刷野打怪上王者·C++篇·第5期·数据类型
- impdp导入排除指定表
- 淘宝爬虫不可信先要登录
- CelebA-Spoof: Large-Scale Face Anti-Spoofing Dataset with Rich Annotations ECCV2020
- 获取当前scn号scn1_Oracle 系统改变号SCN详解
- 如何用R语言绘制生成正态分布图表