`
gaoyuntao2005
  • 浏览: 303027 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring ibatis 事务配置

阅读更多

Spring下由三种途径对事物进行管理:编程式事务管理、声明式事务管理和AOP事务管理。其中AOP事务管理又分AOP注解事务管理和AOP XML配置两种,这里记录下述其中的AOP XML配置管理,这也是spring最推荐的方式。

  参照<spring高级程序设计>中的银行转账的例子。

1.Spring的数据源设置

Xml代码  收藏代码
  1. < bean   id = "dataSource"   class = "org.apache.commons.dbcp.BasicDataSource"   destroy-method = "close"   >   
  2.   < property   name = "driverClassName"   value = "com.mysql.jdbc.Driver" />   
  3.   < property   name = "url"   value = "jdbc:mysql://localhost:3306/test" />   
  4.   < property   name = "username"   value = "root" />   
  5.   < property   name = "password"   value = "123456" />   
  6. </ bean >   

 2.Spring对iBATIS的支持

   Spring对ibatis主要提供org.springframework.orm.ibatis.SqlMapClientFactoryBean类来进行支持  

Xml代码  收藏代码
  1. < bean   id = "sqlMapClient"   class = "org.springframework.orm.ibatis.SqlMapClientFactoryBean" >   
  2.   < property   name = "dataSource"   ref = "dataSource" />   
  3.   < property   name = "configLocation"   value = "/config/sqlMapConfig.xml" />   
  4. </ bean >   

  3.Spring对iBATIS DAO的支持

  Spring提供org.springframework.orm.ibatis.support.SqlMapClientDaoSupport来对 iBATIS DAO进行支持,通过调用该类的getSqlMapClientTemplate()方法来获得对iBATIS的控制访问。

Xml代码  收藏代码
  1. < bean   id = "accountDao"   class = "com.hj.dao.AccountDaoImp" >   
  2.    < property   name = "sqlMapClient"   ref = "sqlMapClient" />   
  3. </ bean >      

 

Xml代码  收藏代码
  1. < bean   id = "bankService"   class = "com.hj.bankOps.DefaultBankService" >   
  2.    < property   name = "accountDao"   ref = "bankAccountDao" />   
  3. </ bean >   

   这里DefaultBankService类主要实现BankService接口(提供服务的方法定义),其内部引用一个BankAccountDao实例来对数据库进行访问。BankAccountDao类主要继承SqlMapClientDaoSupport。

 4.Spring 配置事务  

Xml代码  收藏代码
  1. < bean   id = "transactionManager"   class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" >   
  2.      < property   name = "dataSource"   ref = "dataSource" />   
  3.   </ bean >    

  5.AOP XML配置事务管理

    1).配置事务通知

Xml代码  收藏代码
  1. < tx:advice   id = "transactionManagerAdivice"   transaction-manager = "transactionManager" >   
  2.    < tx:attributes >   
  3.       < tx:method   name = "*"    
  4.                 isolation = "READ_COMMITTED"    
  5.                 propagation = "REQUIRED"    
  6.                 rollback-for = "java.lang.RuntionException"   />   
  7.    </ tx:attributes >   
  8. </ tx:advice >   

   2).配置切入点和方面

Xml代码  收藏代码
  1. < aop:config >   
  2.    < aop:pointcut   expression = "execution(* com.hj.bankOps.DefaultBankService.*(..))"   id = "bankServicePc" />   
  3.    < aop:advisor   advice-ref = "transactionManagerAdivice"   pointcut-ref = "bankServicePc" />     
  4.  </ aop:config >   

  上述execution(* com.hj.bankOps.DefaultBankService.*(..))表达式表示切入点为该类中的任何方法。所以当 DefaultBankService类中方法调用时就会进行事务管理,并且当抛出RuntimeException时,自动进行回滚操作。

  6.遇到的问题

   在<Spring高级程序设计>一书上,对AOP XML事务配置时,其通知部分并没有设置具体属性(缺少 rollback-for="java.lang.RuntionException"

Xml代码  收藏代码
  1. < tx:attributes >   
  2.       < tx:method   name = "*"    
  3.                 isolation = "READ_COMMITTED"    
  4.                 propagation = "REQUIRED"    
  5.                />   
  6.    </ tx:attributes >   

 这样在DefaultBankService方法调用中如果有异常抛出,事务并不进行相应回滚操作。

分享到:
评论
1 楼 zhou363667565 2011-12-12  
看到你的这个配置 有个地方有点问题:

< aop:pointcut   expression = "execution(* com.hj.bankOps.DefaultBankService.*(..))"   id = "bankServicePc" />  

如果直接用你上面的配置会报不能匹配类型名称。

Caused by: java.lang.IllegalArgumentException: warning no match for this type name: com.huawei.ngbss.business.service [Xlint:invalidAbsoluteTypeName]

需要加一个”.*“才可以。
因为DefaultBankService包后面.*是类名还要指定方法名需要在加一个”.*“ ,其中
"(..)"是方法参数列表..

正确的应该是:
com.hj.bankOps.DefaultBankService.*.*(..))"  

相关推荐

    spring+ibatis事务的配置

    很好的spring+ibatis事务的配置文档.

    spring ibatis 配置(包括事务管理)

    spring ibatis 配置spring ibatis 配置spring ibatis 配置spring ibatis 配置

    Spring+ibatis 保留ibatis事务的配置

    SPRING与IBATIS整合采用保留IBATIS事务,可自己控制回滚!

    SPRING IBATIS 保留IBATIS事务的配置方式

    SPRING与IBATIS整合采用保留IBATIS事务,可自己控制回滚!

    springmvc+ibatis框架包,使用spring注入,事务等,包都齐全

    自己配置的springmvc+ibatis框架,自己找齐了包,不容易啊,所以上来跟大家分享一下,spring自动注入包,事务包,ibatis包,数据库连接包,都齐全的,仅局限于springmvc+ibatis,这些包不多,不少,刚够

    Spring+Struts+ibatis下配置数据读写分离及事务(一)

    NULL 博文链接:https://wilr.iteye.com/blog/1190524

    Spring Ibatis Demo

    这是一个servlet + spring + ibatis 的完整例子,里面包含了spring的事务管理以及所有的jar包,下载下来后直接改下数据库配置就可以运行!从界面到action,业务层,dao层有现成的代码!

    spring mvc+ibatis+spring注解

    系统采用spring2.5 + ibatis2.3.4,采用注解方式配置,非xml配置方式。包括分页排序查询、新增、修改、删除、登陆验证功能,数据库采用oracle。

    Ibatis_Spring_Demo

    这个Project是关于ibatis 和 spring 框架整合的Demo。 需要向大家说明一下几个需要注意的地方: ...2.ibatis和spring的整合主要是spring的配置文件需要配置ibatis的相关配置,如:数据库连接及事务管理等。

    Struts2.0+Springframework2.5+ibatis2.3完美整合用户登录及增删改查

    最流行技术Struts2.1 +Spring 2.5.1+ibatis2.3整合开发而成,这与我以前发布的版本中最大特色是整合了Spring2.5.1中的注解功能和半自动化工具ibatis技术,这是本示例的两大特色,简化了配置文件的烦锁,希望能给更多喜欢...

    Struts2+Ibatis+Spring3.0完整项目(直接运行)

    耗时3天,对Struts2+Ibatis+...包括Spring3.0的事务配置 OSCache二级缓存的配置 log4j实现输出Sql到控制台 JfreeChart与Struts2,Spring3.0的整合 对一个简单的表实现查询,批量删除,添加,删除 可导入eclipse直接运行

    springmvc-ibatis

    -- 配置那个类那个方法用到事务处理 --&gt; *" read-only="true"/&gt; *" propagation="REQUIRED"/&gt; *" propagation="REQUIRED"/&gt; *" propagation="REQUIRED"/&gt; *" propagation="REQUIRED"/&gt; ...

    跟我学spring3(8-13)

    【第八章】 对ORM的支持 之 8.3 集成iBATIS ——跟我学spring3 【第八章】 对ORM的支持 之 8.4 集成JPA ——跟我学spring3 【第九章】 Spring的事务 之 9.1 数据库事务概述 ——跟我学spring3 【第九章】 Spring的...

    spring jar 包详解

    (8) spring-orm.jar 这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖 spring-dao.jar...

    iBATIS实战

    2.5.3 配置iBATIS(预览) 37 2.5.4 构建应用程序 38 2.5.5 运行应用程序 39 2.6 iBATIS未来的发展方向 40 2.6.1 Apache软件基金会 40 2.6.2 更简单、更小且依赖性更少 40 2.6.3 更多的扩展点和插件 41 2.6.4 支持更多...

    spring applicationContext 配置文件

    &lt;bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean" p:dataSource-ref="dataSourceProxy"&gt; &lt;value&gt;classpath:SqlMapConfig.xml&lt;/value&gt; &lt;/property&gt; ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    Spring 2.0的'spring-jdo.jar', 'spring-jpa.jar', 'spring-hibernate3.jar', 'spring-toplink.jar' 和 'spring-ibatis.jar' 被合并到Spring 2.5大粒度的'spring-orm.jar'中。 Spring 2.5的 'spring-test.jar' 取代...

    spring4.3.9相关jar包

    spring-beans.jar(必须):这 个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI ...

Global site tag (gtag.js) - Google Analytics