Spring的事务到底该给Dao配置还是给Service配置?
Spring事务为业务逻辑进行事务管理,保证业务逻辑上数据的原子性。
事务得根据项目性质来细分:事务可以设置到三个层面(dao层、service层和web层)。
第一:web层事务,这一般是针对那些安全性要求较高的系统来说的。例如电子商务网站。粒度小,一般系统用不着这么细。
第二:service层事务,这是一常见的事务划分, 将事务设置在业务逻辑上,只要业务逻辑出错或异常就事务回滚。粒度较小,一般推荐这种方式。
第三:数据持久层数据务,也就是常说的数据库事务。这种事务在安全性方面要求低。就是给一个简单的增删改之类的操作增加事务操作。粒度大
给Service层配置事务,因为一个Service层方法操作可以关联到多个DAO的操作。在Service层执行这些Dao操作,多DAO操作有失败全部回滚,成功则全部提交。
事务分为业务事务和系统事务,业务事务也就是业务逻辑上操作的一致性,系统事务自然就是指真正的数据库事务,
Spring配置事务的是为了什么进行管理,当然是为业务逻辑进行事务管理,保证业务逻辑上数据的原子性;
Dao层是什么,数据访问层,是不应该包含业务逻辑的,这就是和Service层的不同;
Service层就是业务逻辑层,事务的管理就是为Service层上的保证。
---------------------------------------------------------------------------------
Blog:http://www.cnblogs.com/linjiqin/
Hadoop交流群(250363249)、Java+Oracle交流群(158560018)
题外话:
本人来自铁观音的发源地——泉州安溪,有需要正宗安溪铁观音的友友欢迎Q我:416501600。
相关文章
- spring的annotation-driven配置事务管理器详解
- Spring Boot - Profile配置
- spring事务配置
- spring接口文档注解:@ApiOperation
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- spring的断言工具类Assert的基本使用
- Spring Boot Junit单元测试
- 玩转Spring Boot 自定义配置、导入XML配置与外部化配置
- 基于Spring框架的Shiro配置
- SpringMvc(4-1)Spring MVC 中的 forward 和 redirect(转)
- spring+mybatis+Atomikos JTA事务配置说明
- Spring_day03--Spring配置c3p0连接池和dao使用jdbcTemplate
- Spring AOP之使用注解创建切面
- SPRING声明式事务,不写rollback-for的问题
- [Spring Framework]DI初次使用、bean基础配置
- spring 中常用的两种事务配置方式以及事务的传播性、隔离级别
- Spring的Lifecycle和SmartLifecycle,可以没用过,但不能不知道!
- Spring Boot配置支持跨域访问
- Spring DI的配置使用
- Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换