在我刚学习SpringMvc 的时候,知道这是 专门针对于前后端交互的开发的框架,它将整体的系统分成了 Model(模型),View(视图)和 Controller(控制器)三个层次,也就是将用户视图和业务处理隔离开,并且通过控制器连接起来,(如下图):.
controller 层:主要是对访问控制进行转发,与前端数据交互 service 层 :处理业务逻辑和事务 mapper 层:主要和数据库交互 mvc 的好处与弊端好处: Spring MVC属于SpringframeWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架
坏处: 如果业务复杂,service 层 代码繁琐且庞大,排错困难。Dao 层 也就是(mapper层)sql语句复杂,关联查询比较多。
具体的手册上是这样描述:
Manager 层:通用业务处理层,它有如下特征:
- 对第三方平台封装的层,预处理返回结果及转化异常信息,适配上层接口;对 Service 层通用能力的下沉,如缓存方案、中间件通用处理;与 DAO 层交互,对多个 DAO 的组合复用。(结构如下图:来源Ailibaba JAVA 开发手册)
所以我们可以这样做:
1.复杂业务,service提供数据给Manager层,负责业务编排,然后把事务下沉到Manager层, Manager层不允许相互调用,不会出现事务嵌套。
2.专注于不带业务sql语言,也可以在manager层进行通用业务的dao层封装。
3.避免复杂的join查询,数据库压力比java大很多,所以要严格控制好sql,所以可以在manager层 进行拆分,比如复杂查询。
4.简单的业务使用,可以不使用Manager层。(此段话借鉴一位前辈)



