首页 新闻 会员 周边 捐助

SpringMVC,,, 进行不需要事务的操作,需要经过业务层吗?

0
悬赏园豆:15 [已解决问题] 解决于 2017-08-07 18:54

假设我的事务切点切在业务层。

想问一下有开发经验的猿。在做WEB项目的时候,从数据库获取数据时(也就是不需要事务的操作),你们需要经过业务层吗?还是喜欢直接调用DAO层,忽略掉业务层?不需要事务的操作经过业务层对性能有多大影响?

钓鱼翁的主页 钓鱼翁 | 初学一级 | 园豆:81
提问于:2017-08-07 16:20
< >
分享
最佳答案
0

分层的目的是为了使工程的结构更加清晰,将逻辑拆分开,不同的层做不同的事情,实现一定程度上的解耦和复用,

比如你有一个需要导出统计结果的需求,让你用两个接口分别导出csv格式的和excel格式的,

如果不拆分controller和service,那么你需要写两次查询组装数据的逻辑,

如果拆分了,service层做查询组装数据的逻辑, controller层做包装为csv或excel,那么你的service层查询组装数据的逻辑就可以复用了,

如果有一天,需求变更,导出的数据要求新增一个字段,那么直接在service层改了即可,如果不拆分,就需要两个地方都改,

 

所以拆分可以便于维护,

收获园豆:5
苍枫露雨 | 小虾三级 |园豆:1027 | 2017-08-07 17:49
其他回答(2)
0

业务层不能忽略,从分层和隔离的角度,表现层不可以直接操作数据访问层

收获园豆:5
JeffWong | 园豆:2328 (老鸟四级) | 2017-08-07 16:57

哦,我的问题没描述完整,我是从表现层到控制层(使用@Controller 注解的类),再DAO层,这样把业务层忽略了可以吗?正规的开发是不是这样的呢?

支持(0) 反对(0) 钓鱼翁 | 园豆:81 (初学一级) | 2017-08-07 17:09

@钓鱼翁: 其实不可以这样在Controller直接调用DAO,而应该通过接口调用ServiceImpl,NLayer或者3Layer已经是业界共识了

支持(0) 反对(0) JeffWong | 园豆:2328 (老鸟四级) | 2017-08-07 17:58
0

controller层是做跳转控制、数据包装等操作的,不涉及到业务转换和处理,没法省掉。强行省掉,会把业务代码升到controller层或者降到dao层,这样都是不利于解耦和复用的

收获园豆:5
_wxyz | 园豆:263 (菜鸟二级) | 2017-08-07 17:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册