本文只介绍配置文件,注意扫描文件部分。

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声明式事务管理相关推荐

  1. SpringMVC、MyBatis声明式事务管理

    2019独角兽企业重金招聘Python工程师标准>>> 采用的基本搭建环境:SpringMVC.MyBatis.MySQL.tomcat         Spring事务管理分解了传 ...

  2. Spring配置文件详解三:Spring声明式事务管理

    1.声明式事务管理 Spring提供了声明式事务管理,这是通过Spring AOP实现的. 原理:Spring中进行事务管理的通常方式是利用AOP(面向切片编程)的方式,为普通java类封装事务控制, ...

  3. 全面分析 Spring 的编程式事务管理及声明式事务管理(转)

    摘要 Spring 的事务管理是 Spring 框架中一个比较重要的知识点,该知识点本身并不复杂,只是由于其比较灵活,导致初学者很难把握.本教程从基础知识开始,详细分析了 Spring 事务管理的使用 ...

  4. 全面分析 Spring 的编程式事务管理及声明式事务管理--转

    开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本 ...

  5. spring事物配置,声明式事务管理和基于@Transactional注解的使用

    事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性. spring支持编程式事务管理和声明式事务管理两种方式. 编程式事务管理使用TransactionTemplate或 ...

  6. Java程序员从笨鸟到菜鸟之(八十)细谈Spring(九)spring+hibernate声明式事务管理详解

    声明式事务管理是spring对事务管理的最常用的方式,因为这种方式对代码的影响最小,因此也符合非侵入性的轻量级容器的概念.Spring的事务管理是通过AOP的方式来实现的,因为事务方面的代码与spri ...

  7. spring事务配置,声明式事务管理和基于@Transactional注解的使用

    事务管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性. spring提供了几个关于事务处理的类: TransactionDefinition //事务属性定义 Transc ...

  8. Spring声明式事务管理

    事务管理方式 1.编码方案 不建议使用,它具有侵入性.在原有的业务代码基础上去添加事务管理代码 2. 声明式事务控制,基于AOP对目标进行代理,添加around环绕通知. 这种方案,它不具有侵入性,不 ...

  9. spring配置c3p0连接池、spring的声明式事务管理

    一.spring配置c3p0连接池: 1.导入maven依赖: <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> & ...

最新文章

  1. laydate 使用
  2. cmake find_package opencv 找不到
  3. Oracle单机报监听不支持服务,(转)oracle 启动监听 报“监听程序不支持服务” 解决...
  4. python 杂记(二)
  5. 托盘图标菜单_全新开始菜单和任务栏,Windows 10X 抢先体验
  6. jsoup 获取html中body内容_python爬虫之下载盗墓笔记(bs4解析HTML)
  7. real210开发板tslib1.4移植
  8. 华大单片机m4内核的滴答定时器_微处理器、单片机及其外设,处理还是控制?...
  9. 95-10-160-启动-KafkaApis
  10. LNMP安装目录及配置文件
  11. Python实现倒计时按钮
  12. SpringBoot AOP 记录WEB请求日志
  13. mysql 收藏表如何建立_代码收藏系列--mysql创建数据库、数据表、函数、存储过程命令...
  14. 计算机课程成绩认定管理办法,全日制普通本科生课程学分成绩对接认定管理办法...
  15. chrome浏览器主页被劫持为hao123
  16. 浙教版数学作业本,参考答案如此下载
  17. Java虚拟机面试问题
  18. tabindex标签的用法
  19. 【算法】时间和空间复杂度
  20. 写策划案需要了解策划案的内容以及撰写原则

热门文章

  1. Mipmap与可绘制文件夹[重复]
  2. 为什么++ [[]] [+ []] + [+ []]返回字符串“ 10”?
  3. ios 销毁当前页面重新开启_利用Vue中keep-alive,快速实现页面缓存
  4. 网卡驱动怎么安装方法教程
  5. Random 随机数使用示例
  6. matlab pdm转pcm_STM32F407 PDM转PCM问题
  7. 对称构型机器人轮直径校准思路
  8. 文字垂直居中(HTML、CSS)
  9. 链接标签(HTML)
  10. 常用的流式布局FlowLayout