最近想搭建一个自己的springboot 基础后台框架;
在搭建的过程中,发现了一些包括代码结构逻辑层次的问题;项目用到包括Mybatis-Plus等技术(常用CRUD已封装好)
Controller层调用service层,service层调用mapper层,看似逻辑清晰,但很多业务逻辑简单的功能,只是直接调用,这样看下来无非是多封装了一层,反而有些化蛇添足;
个人认为理想情况:
controller层只负责接收转发参数以及组织调用service层的方法,service层负责具体的业务逻辑,调用mapper层;
对于简单的业务逻辑,直接通过通用CRUD完成;
对于较复杂业务逻辑
mapper层:尽量只写稍微复杂些的SQL,以及多表连接;
service层:包括接口层和实现类层,接口层只包括需要供其他层调用的功能;实现类层里可以写一些用的比较多的一些的代码;然后进行组装;
--带来的问题就是代码量增多--,如何简化;比如根据用户名查询权限,查询菜单等等等等,通过sql语句可以直接关联解决,写代码可能就要写很多行,很冗余,但直接写sql又失去了代码结构分三层的意义
暂时的结论:
mapper层:复杂sql以及多表连接;
service层:一个标准:尽量不要有很多功能是直接调用mapper层解决;
具体做的时候再就事论事(20201108,后续补充)