Spring 开发比较复杂的业务,划分为多层Service,如何把握事务最佳的设置。

红薯官方 发布于 2018/11/24 19:24
阅读 671
收藏 1

基于 Spring 的环境开发,由于业务系统的复杂性,如果直接在接口业务层做业务,复杂的东西和接口数据耦合太严重(比如蛋疼的VO、DTO之类的数据转换都要耦合在一块,你想在系统内部调用都有点憋屈),

将核心业务层和接口业务层进行划分解耦,对于这块就会遇到一些核心业务层事务怎么设置的问题:

1、核心业务层如果不加事务,由接口业务层的事务来管控(一些 Activiti 之类的框架都是这么干,由用户来管事务);

2、核心业务层设置支持事务,如果没有则没有影响;

3、核心业务层设置必须要在事务里面运行、不设置事务级别,如果事务缺失则 Spring 报异常;

4、核心业务层设置自己在独立的事务中运行,外层事务回滚不影响;

你可能会说,按事务特性和实际需要,选择是否要开启事务、加入事务或者嵌套独立事务,但这些只是事务如何用的问题。

由于事务,可能还会导致比如串行事务等导致被调用的多个Service变成串行的数据操作,降低系统性能,所以如何把把握好事务的设置是一个值得考虑的事情。

你觉得我这个问题该怎么考虑呢?

加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部