- 浏览: 312432 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhou363667565:
看到你的这个配置 有个地方有点问题:
< ao ...
spring ibatis 事务配置 -
wo17796452:
[b][/b][i][/i][u][/u]引用[*][img] ...
crowd Jira confluence 集成 -
wo17796452:
<input type="button&quo ...
crowd Jira confluence 集成 -
benbear2008:
这些类图呢?
Spring MVC框架类图与顺序图 -
TTLtry:
谢了 最近学习spring时候 却总是登不上官方网站 很多 ...
Spring 2.5.5 api 帮助文档 chm格式 下载
Spring下由三种途径对事物进行管理:编程式事务管理、声明式事务管理和AOP事务管理。其中AOP事务管理又分AOP注解事务管理和AOP XML配置两种,这里记录下述其中的AOP XML配置管理,这也是spring最推荐的方式。
参照<spring高级程序设计>中的银行转账的例子。
1.Spring的数据源设置
- < bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource" destroy-method = "close" >
- < property name = "driverClassName" value = "com.mysql.jdbc.Driver" />
- < property name = "url" value = "jdbc:mysql://localhost:3306/test" />
- < property name = "username" value = "root" />
- < property name = "password" value = "123456" />
- </ bean >
2.Spring对iBATIS的支持
Spring对ibatis主要提供org.springframework.orm.ibatis.SqlMapClientFactoryBean类来进行支持
- < bean id = "sqlMapClient" class = "org.springframework.orm.ibatis.SqlMapClientFactoryBean" >
- < property name = "dataSource" ref = "dataSource" />
- < property name = "configLocation" value = "/config/sqlMapConfig.xml" />
- </ bean >
3.Spring对iBATIS DAO的支持
Spring提供org.springframework.orm.ibatis.support.SqlMapClientDaoSupport来对 iBATIS DAO进行支持,通过调用该类的getSqlMapClientTemplate()方法来获得对iBATIS的控制访问。
- < bean id = "accountDao" class = "com.hj.dao.AccountDaoImp" >
- < property name = "sqlMapClient" ref = "sqlMapClient" />
- </ bean >
- < bean id = "bankService" class = "com.hj.bankOps.DefaultBankService" >
- < property name = "accountDao" ref = "bankAccountDao" />
- </ bean >
这里DefaultBankService类主要实现BankService接口(提供服务的方法定义),其内部引用一个BankAccountDao实例来对数据库进行访问。BankAccountDao类主要继承SqlMapClientDaoSupport。
4.Spring 配置事务
- < bean id = "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" >
- < property name = "dataSource" ref = "dataSource" />
- </ bean >
5.AOP XML配置事务管理
1).配置事务通知
- < tx:advice id = "transactionManagerAdivice" transaction-manager = "transactionManager" >
- < tx:attributes >
- < tx:method name = "*"
- isolation = "READ_COMMITTED"
- propagation = "REQUIRED"
- rollback-for = "java.lang.RuntionException" />
- </ tx:attributes >
- </ tx:advice >
2).配置切入点和方面
- < aop:config >
- < aop:pointcut expression = "execution(* com.hj.bankOps.DefaultBankService.*(..))" id = "bankServicePc" />
- < aop:advisor advice-ref = "transactionManagerAdivice" pointcut-ref = "bankServicePc" />
- </ aop:config >
上述execution(* com.hj.bankOps.DefaultBankService.*(..))表达式表示切入点为该类中的任何方法。所以当 DefaultBankService类中方法调用时就会进行事务管理,并且当抛出RuntimeException时,自动进行回滚操作。
6.遇到的问题
在<Spring高级程序设计>一书上,对AOP XML事务配置时,其通知部分并没有设置具体属性(缺少 rollback-for="java.lang.RuntionException")
- < tx:attributes >
- < tx:method name = "*"
- isolation = "READ_COMMITTED"
- propagation = "REQUIRED"
- />
- </ tx:attributes >
这样在DefaultBankService方法调用中如果有异常抛出,事务并不进行相应回滚操作。
评论
< 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.*.*(..))"
发表评论
-
入门 21 - Controller的单元测试
2011-03-14 08:09 1134现在假设您要设 ... -
Spring MVC框架类图与顺序图
2011-03-14 08:08 4986藉由了解Spring的框架组成,我们可以了解框架之中的类与 ... -
Spring入门19 - ModelAndView类别
2011-03-14 08:07 1356入门 19 - ModelAndView类别 ... -
DispatcherServlet定义档
2011-03-14 08:07 887DispatcherServlet预设使用servlet名 ... -
入门 17 - 第一个Spring MVC Web程序
2011-03-14 08:06 1121进行这个程序之前,请您先完成入门 04 - 第一个Spri ... -
入门 16 - BeanFactoryPostProcessor接口
2011-03-14 08:05 1017撰写Bean定义档通常使用XML来撰写,XML阶层式的组织 ... -
入门 15 - Aware相关接口
2011-03-14 08:05 994Spring中提供一些Aware相关接口,像是BeanFa ... -
入门 14 - 资源文件的取得
2011-03-14 08:04 886首先来看看ApplicationContext接口的实作 ... -
入门 13 - MessageResource接口
2011-03-14 08:03 1132ApplicationContext继承了org.spri ... -
入门 12 - ApplicationContext接口
2011-03-14 08:03 920在Spring中,BeanFactory提供的是个比较API层 ... -
入门 11 - DataSource注入
2011-03-14 08:02 1077对于不同的数据库存取需求,我们使用JDBC来解决这个 ... -
入门 10 - 集合对象注入
2011-03-14 08:01 827对于像数组、java.util.List、java. ... -
入门 09 - 属性参考与自动绑定
2011-03-14 08:00 874在定义Bean时,除了直接指定值给属性值之外,还可以直接参 ... -
入门 08 - 不使用XML定义档
2011-03-14 07:59 857XML档案的阶层格式非常适用于于组态设定,也因此几 ... -
入门 07 - Bean生命周期
2011-03-14 07:59 800在Spring中,从BeanFactory取得的实 ... -
入门 06 - Bean定义档进阶读取
2011-03-14 07:58 878BeanFactory可以接受InputStrea ... -
Constructor注入
2011-03-14 07:57 1055Spring鼓励的是setter injection,但也 ... -
第一个Spring程序
2011-03-14 07:57 882首先我们要先取得Sprin ... -
入门 03 - 依赖注入DI
2011-03-14 07:56 870IoC模式基本上是一个高层的概念,在Martin Fow ... -
控制反转IoC
2011-03-14 07:55 843IoC全名Inversion of Control,如果 ...
相关推荐
很好的spring+ibatis事务的配置文档.
根据提供的文件信息,本文将详细解析如何在Spring与ibatis框架整合时,通过特定配置来保留ibatis事务处理机制,并实现对事务的自定义控制。文章将围绕标题、描述及部分代码片段展开讨论。 ### Spring与ibatis整合...
根据提供的文件信息,本文将详细解析Spring与iBatis整合时如何保留并使用iBatis事务管理机制,以及如何在应用程序中实现手动控制事务的方法。 ### Spring与iBatis整合 Spring框架是一个全面的企业级应用开发框架,...
7. **AOP事务配置**:接下来,我们需要在Spring中配置AOP事务规则,定义哪些方法需要在事务中执行。通常使用`@Transactional`注解,但要在配置文件中开启注解驱动的事务管理。 ```xml ``` 8. **使用示例**:在...
本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与Spring及Struts2的集成。 首先,让我们来看一下“一对多”关系。在数据库设计中,一对多关系很常见,比如一个用户可以有多个订单。在Ibatis中,...
7. 事务配置:根据业务需求,配置Spring的事务管理器,如PlatformTransactionManager,以控制事务的边界。 8. 整合测试:编写测试类,通过@Autowired注解注入DAO接口,进行数据库操作的测试,确保Spring和iBatis的...
通过这个Demo,开发者可以学习如何在Spring与iBatis集成的环境中配置和使用声明式事务,理解事务的ACID属性(原子性、一致性、隔离性和持久性)如何在实际项目中得到保障。此外,这也是理解和实践Spring AOP以及依赖...
"spring+ibatis配置实例"这个项目提供了一个完整的开发环境,包含所需的依赖包和标准化的项目结构,对初学者或开发者来说极具价值。 Spring是一个全面的Java应用框架,它提供了依赖注入(Dependency Injection,DI...
3. **配置文件**:在整合过程中,需要配置两部分:Spring 配置文件(如 `applicationContext.xml`)和 iBATIS 配置文件(如 `sqlMapConfig.xml`)。Spring 配置文件中定义数据源、事务管理器以及 ...
Spring提供了IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)等核心特性,使得开发者可以轻松地进行事务管理、安全管理以及与其他框架的集成。在本项目中,Spring可能被...
2. **配置Spring**:接下来,需要在Spring的配置文件中定义iBATIS的SqlMapClient或SqlSessionFactory Bean,并配置数据源、事务管理器等相关属性。 3. **定义映射文件**:iBATIS的核心在于定义SQL映射文件,这些...
本文将深入探讨如何在Spring、Struts和iBATIS这三大流行框架的集成环境中实现数据读写分离以及事务控制。我们将不涉及具体的代码实现,而是侧重于理论背景和设计原则。 首先,让我们理解数据读写分离的概念。数据...
当我们谈论"spring+ibatis声明式事务Demo"时,我们关注的是如何在Spring框架中利用iBatis实现声明式事务管理。 声明式事务管理是Spring框架提供的一种方便、高效的方式,使得开发者无需手动控制事务的开始、提交、...
Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...
Struts2、Spring和iBatis是Java Web开发中非常重要的三个框架,它们分别负责MVC模式中的Action层、业务逻辑层以及数据访问层。这三个框架的整合可以提供一个高效且灵活的开发环境,帮助开发者构建出结构清晰、易于...
3. 配置iBatis的mybatis-config.xml,包含数据源、事务管理器以及Mapper扫描路径等信息。 4. 设计数据库表结构,编写对应的Java实体类。 5. 编写Service层接口和实现类,用于封装业务逻辑。 6. 编写DAO层接口和实现...
6. **配置数据源**:在Spring中配置数据源,以便iBatis能够连接数据库。 7. **编写Mapper接口和XML文件**:定义数据库操作接口,XML文件中编写具体的SQL语句。 8. **测试**:编写JUnit测试或在实际应用中测试整合后...
- **iBatis配置**:编写MyBatis的配置文件(如`mybatis-config.xml`),设置数据源、事务管理器等,并定义Mapper接口和对应的XML映射文件。 4. **Mapper接口与XML映射文件** - **Mapper接口**:在Java中创建...