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回答
-
这是个好问题哈,,项目中service确实只是简单的调用了dao,当项目业务比较多的时候,servcie和business就能区分出来了;
一般service指粒度比较小的业务操作原子,business粒度比较大,
spring aop 对servcie进行事务处理,但是对business没有,说明service是主要是数据库操作层面的,而business主要是业务层面的;
当然,也可以不用business,直接用service,但是在三端分离的时候,一般service属于公共模块使用,business对于到不同应该的业务层面;
00
相似问题