Spring中的数据持久操作的事务配置

spring中的数据持久操作的事务配置,一般有三个对象,

  • 数据源(dataSouce);
  • 事务管理器(transactionManager);
  • 事务代理机制。

Spring 提供了多种的底层数据源实现,以及多种类型的事务管理器;

所有的管理器都基于 Platform Transaction Manager 接口,实现各自的事务策略;

Spring 事务管理采用 AOP 切面代理技术实现,AOP 用于分隔关注点,保证事务的原子性,采用一定的技术,把该关注点织入(weaving) 到待完善的关注点上,实现单独组件无法实现的功能,以解决面向对象编程在某些方式下难以实现的操作,更好的支持面向对象的开关原则(扩展开放,修改关闭)

对于三部分:dataSource、transactionManager、事务代理机制。无论哪种配置方式,一般变化的都是代理机制部分。DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化。例如,使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager

事务可以设置到三个层面(dao层、service层和web层),

第一种:web层事务,这一般是针对那些安全性要求较高的系统来说的。例如电子商务网站,这种类型的事务粒度小,一般系统用不着这么细。

第二种:service层事务,这是一常见的事务划分,将事务设置在业务逻辑上,只要业务逻辑出错或异常就事务回滚。粒度较小,一般推荐这种方式。

第三种:数据持久层数据务,也就是常说的数据库事务。这种事务在安全性方面要求低。就是给一个简单的增删改之类的操作增加事务操作,粒度大。

事务处理到底在哪个层面应该根据项目性质来细分,Spring的事务为第二种:业务逻辑层进行事务管理,保证业务逻辑上数据的原子性。   

猜你喜欢

转载自blog.csdn.net/u012556994/article/details/81155400