spring事务到底用于service层还是dao层

Posted 雷刚的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring事务到底用于service层还是dao层相关的知识,希望对你有一定的参考价值。

Spring事务为业务逻辑进行事务管理,保证业务逻辑上数据的原子性。

事务得根据项目性质来细分:事务可以设置到三个层面(dao层、service层和web层)。 

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

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

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

给Service层配置事务,因为一个Service层方法操作可以关联到多个DAO的操作。在Service层执行这些Dao操作,多DAO操作有失败全部回滚,成功则全部提交。

事务分为业务事务和系统事务,业务事务也就是业务逻辑上操作的一致性,系统事务自然就是指真正的数据库事务,

Spring配置事务的是为了什么进行管理,当然是为业务逻辑进行事务管理,保证业务逻辑上数据的原子性;

Dao层是什么,数据访问层,是不应该包含业务逻辑的,这就是和Service层的不同;

Service层就是业务逻辑层,事务的管理就是为Service层上的保证。

以上是关于spring事务到底用于service层还是dao层的主要内容,如果未能解决你的问题,请参考以下文章

Java框架spring学习笔记(十八):事务操作

Spring 事务传播行为

Spring_7-Spring事务

Spring框架中的DAO和Service层是什么?

Spring的事务管理

spring和mybatis整合怎么将事务在service层关闭?使用xml配置