spring3.1声明式事务管理
本文只介绍配置文件,注意扫描文件部分。
1 配置applicationContext.xml
<!-- 定义oracle数据库连接-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
<property name="jdbcUrl" value="jdbc:oracle:thin:@ip:port:dbname" />
<property name="user" value="name" />
<property name="password" value="pwd" />
<property name="autoCommitOnClose" value="true" />
<property name="initialPoolSize" value="5" />
<property name="minPoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="acquireIncrement" value="5" />
<property name="maxIdleTime" value="100" />
<property name="maxStatements" value="0" />
<property name="maxStatementsPerConnection" value="100"></property>
</bean>
<!-- 定义jdbcTemplate-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 事务 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 配置方法事务隔离机制以及回退机制 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="query*" read-only="true" />
<tx:method name="find*" read-only="true" />
<tx:method name="setParameter" propagation="REQUIRES_NEW"
rollback-for="Exception" /><!-- setParameter方法使用新事务 -->
<tx:method name="*" propagation="REQUIRED" rollback-for="Exception" />
</tx:attributes>
</tx:advice>
<!-- 配置事务切入切面 对com.test.service下的文件使用事务 -->
<aop:config>
<aop:advisor
pointcut="execution(* com.test.service.*.*(..))"
advice-ref="txAdvice" />
</aop:config>
<!--
自动扫描组件,这里要把
controller去除,他们是在spring3-servlet.xml中配置的,如果不去除会影响事务管理的。
对com.test下的非Controller注解进行扫描
-->
<context:component-scan base-package="com.test">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>
主要
2 spring3-servlet.xml
<!-- 对com.test.action下的Controller文件扫描
这里只能对Controller扫描,对service扫描会使事务失效 -->
<context:component-scan base-package="com.test.action">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>
转载于:https://blog.51cto.com/fanson59/1355093
spring3.1声明式事务管理相关推荐
- SpringMVC、MyBatis声明式事务管理
2019独角兽企业重金招聘Python工程师标准>>> 采用的基本搭建环境:SpringMVC.MyBatis.MySQL.tomcat Spring事务管理分解了传 ...
- Spring配置文件详解三:Spring声明式事务管理
1.声明式事务管理 Spring提供了声明式事务管理,这是通过Spring AOP实现的. 原理:Spring中进行事务管理的通常方式是利用AOP(面向切片编程)的方式,为普通java类封装事务控制, ...
- 全面分析 Spring 的编程式事务管理及声明式事务管理(转)
摘要 Spring 的事务管理是 Spring 框架中一个比较重要的知识点,该知识点本身并不复杂,只是由于其比较灵活,导致初学者很难把握.本教程从基础知识开始,详细分析了 Spring 事务管理的使用 ...
- 全面分析 Spring 的编程式事务管理及声明式事务管理--转
开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本 ...
- spring事物配置,声明式事务管理和基于@Transactional注解的使用
事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性. spring支持编程式事务管理和声明式事务管理两种方式. 编程式事务管理使用TransactionTemplate或 ...
- Java程序员从笨鸟到菜鸟之(八十)细谈Spring(九)spring+hibernate声明式事务管理详解
声明式事务管理是spring对事务管理的最常用的方式,因为这种方式对代码的影响最小,因此也符合非侵入性的轻量级容器的概念.Spring的事务管理是通过AOP的方式来实现的,因为事务方面的代码与spri ...
- spring事务配置,声明式事务管理和基于@Transactional注解的使用
事务管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性. spring提供了几个关于事务处理的类: TransactionDefinition //事务属性定义 Transc ...
- Spring声明式事务管理
事务管理方式 1.编码方案 不建议使用,它具有侵入性.在原有的业务代码基础上去添加事务管理代码 2. 声明式事务控制,基于AOP对目标进行代理,添加around环绕通知. 这种方案,它不具有侵入性,不 ...
- spring配置c3p0连接池、spring的声明式事务管理
一.spring配置c3p0连接池: 1.导入maven依赖: <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> & ...
最新文章
- laydate 使用
- cmake find_package opencv 找不到
- Oracle单机报监听不支持服务,(转)oracle 启动监听 报“监听程序不支持服务” 解决...
- python 杂记(二)
- 托盘图标菜单_全新开始菜单和任务栏,Windows 10X 抢先体验
- jsoup 获取html中body内容_python爬虫之下载盗墓笔记(bs4解析HTML)
- real210开发板tslib1.4移植
- 华大单片机m4内核的滴答定时器_微处理器、单片机及其外设,处理还是控制?...
- 95-10-160-启动-KafkaApis
- LNMP安装目录及配置文件
- Python实现倒计时按钮
- SpringBoot AOP 记录WEB请求日志
- mysql 收藏表如何建立_代码收藏系列--mysql创建数据库、数据表、函数、存储过程命令...
- 计算机课程成绩认定管理办法,全日制普通本科生课程学分成绩对接认定管理办法...
- chrome浏览器主页被劫持为hao123
- 浙教版数学作业本,参考答案如此下载
- Java虚拟机面试问题
- tabindex标签的用法
- 【算法】时间和空间复杂度
- 写策划案需要了解策划案的内容以及撰写原则
热门文章
- Mipmap与可绘制文件夹[重复]
- 为什么++ [[]] [+ []] + [+ []]返回字符串“ 10”?
- ios 销毁当前页面重新开启_利用Vue中keep-alive,快速实现页面缓存
- 网卡驱动怎么安装方法教程
- Random 随机数使用示例
- matlab pdm转pcm_STM32F407 PDM转PCM问题
- 对称构型机器人轮直径校准思路
- 文字垂直居中(HTML、CSS)
- 链接标签(HTML)
- 常用的流式布局FlowLayout