service和business层的粒度划分及controller层是否可以精简

来源:6-3 ——网站首页——03课程分类,课程推荐

慕粉2110412814

2018-04-23

老师您好,

想请教一下,在系统设计的时候,service层是不是只比dao层多了一个参数验证?其他的逻辑其实都是交给business层来处理?因为我看咱们这个系统的代码里,service最多的就是一个dao层方法的调用,顶多加了一个验证参数。


另外,我看我们这个Controller层里面,portalController,里面调用了很多次business层的方法,为什么不进行进一步的封装,使controller层更加精简?

比如这一节讲解的课程分类,在controller层其实是两步,一个是获取所有分类,一个是把分类里面设置好推荐课程,为什么不在business层里把这两个封装,返回一个List呢?

谢谢老师



//课程分类(一级分类)

List<ConstsClassifyVO> classifys = portalBusiness.queryAllClassify();

//课程推荐

portalBusiness.prepareRecomdCourses(classifys);

mv.addObject("classifys", classifys);


写回答

1回答

祁聪

2018-04-23

这是个好问题哈,,项目中service确实只是简单的调用了dao,当项目业务比较多的时候,servcie和business就能区分出来了;

一般service指粒度比较小的业务操作原子,business粒度比较大,

spring aop 对servcie进行事务处理,但是对business没有,说明service是主要是数据库操作层面的,而business主要是业务层面的;

当然,也可以不用business,直接用service,但是在三端分离的时候,一般service属于公共模块使用,business对于到不同应该的业务层面;

0
0

Java SSM快速开发仿慕课网在线教育平台

学习整合微信公众平台开发、新浪SAE云平台、七牛云、分布式部署等等

1074 学习 · 449 问题

查看课程