关于controller、service、mapper层的思考

最近想搭建一个自己的springboot 基础后台框架;

在搭建的过程中,发现了一些包括代码结构逻辑层次的问题;项目用到包括Mybatis-Plus等技术(常用CRUD已封装好)

Controller层调用service层,service层调用mapper层,看似逻辑清晰,但很多业务逻辑简单的功能,只是直接调用,这样看下来无非是多封装了一层,反而有些化蛇添足;

个人认为理想情况:
controller层只负责接收转发参数以及组织调用service层的方法,service层负责具体的业务逻辑,调用mapper层;

对于简单的业务逻辑,直接通过通用CRUD完成;

对于较复杂业务逻辑

mapper层:尽量只写稍微复杂些的SQL,以及多表连接;
service层:包括接口层和实现类层,接口层只包括需要供其他层调用的功能;实现类层里可以写一些用的比较多的一些的代码;然后进行组装;
--带来的问题就是代码量增多--,如何简化;比如根据用户名查询权限,查询菜单等等等等,通过sql语句可以直接关联解决,写代码可能就要写很多行,很冗余,但直接写sql又失去了代码结构分三层的意义

暂时的结论:

mapper层:复杂sql以及多表连接;
service层:一个标准:尽量不要有很多功能是直接调用mapper层解决;

具体做的时候再就事论事(20201108,后续补充)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。