首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring中的事务处理(上)

2013-03-25 
Spring中的事务处理(下)上篇《Spring中的事务处理(上)》讲了Spring和JDBC管理事务的方式,也说了Spring支持的

Spring中的事务处理(下)

上篇《Spring中的事务处理(上)》讲了Spring和JDBC管理事务的方式,也说了Spring支持的事务管理器的类型,这篇主要列举下当持久层为Hibernate时,Spring所支持的几种配置事务的方式,先说两种配置sessionFactory的方式。

第一种,为直接读取hibernate.cfg.xml文件获取连接数据库信息的方式,hibernate.cfg.xml配置如下:

在spring配置文件applicationContext-common.xml中的配置如下:

当Hibernate中实体类的映射文件越来越多时,可以采用packagesToScan属性,扫描某一个包下所有符合条件的*.hbm.xml文件,免去了在hibernate.cfg.xml配置大量映射文件所带来的不便。

第二种方式是直接在Spring配置文件applicationContext-common.xml中配置数据源,不再读取hibernate.cfg.xml,配置如下:

以上是两种配置HibernatesessionFactory的方式,可自由选择,下面是Spring针对Hibernate事务管理器的四种配置方法,比较推荐第一种和第二种方式。

首先定义一个事务管理器:

一.    用<tx/>标签来定义事务方式,<aop/>标签来关联对应的方法上:

在默认情况下,Spring采用JDK代理,如想用cgLib代理,需引入相应的Jar包,然后按照上面注释部分,将proxy-target-class属性设置为true,其余不变。

二.    用代理的方式,这种也是较为常用的一种方式,下面为配置方式:

     这种方式值得注意的地方是,必须要将注入的bean对象和事务代理对象关联起来,iUserDao为实际配置的bean对象。如下:

三.    用拦截器的方式,这是一种较为古老的方式,配置方式如下:

beanNames属性可以匹配所有符合条件的对象。

四.    用注解的方式,这种方式一般不建议使用。需要配置的如下:

需要注意配置<context:annotation-config/>开启Annotation注解。下面是需要加入事务的类:

     事务是企业应用开发的重要组成部分,他使软件更加可靠。他们确保一种要么全有要么全无的行为,防止数据不一致而导致的不可预测的错误发生。他们同事也支持并发,防止并发应用线程在操作同一数据互相影响。

热点排行