关于controller、service、mapper层的思考

1,017 阅读1分钟

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

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

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

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

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

对于较复杂业务逻辑:

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

暂时的结论:

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

具体做的时候再就事论事