请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

老师您好,

想请教一下,在系统设计的时候,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 17:59:20

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

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

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

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信