◆版权声明:本文出自胖喵~的博客,转载必须注明出处。

  转载请注明出处:https://www.cnblogs.com/by-dream/p/10492073.html

继续上一节,为了更好的开发,现将各个层独立,各司其职。

这里,一共划分了四大块:Controller层、Service层、Dal层和Common。

Common层 

提供一些公用的能力,一个一个看,首先是util:

BaseQuery 所有Query的父类,里面的pageSize和pageNum是分页请求用的,这里面多写了getStart的getSize两个方法是因为在mybatis的请求中,这两个字段会作为参数进行查询的。

    <!-- 分页查 -->
<select id="getPageByQuery" parameterType="com.bryan.demo.common.query.UserQuery" resultMap="userMap">
select
<include refid="columns" />
from user
<include refid="queryParams" />
order by id
<if test="size!=null">
<![CDATA[limit #{start}, #{size}]]>
</if>
</select>

这里就是分页请求的原理,前端在请求的时候,只需带上pageSize和pageNum两个参数就可以了。

Page:分页请求的结果类,里面存储着请求分页时候的参数,以及所有的数量和当前页返回的body数据。

Result:结果类,success代表本次请求是否成功,data定义的是一个模版,所以不同的请求结果数据都可以放到这里。

Query:各个功能的Query类,需要继承BaseQuery,然后定义自己功能的字段即可。

Dal层

负责处理数据相关的逻辑。

entity中DO代表数据库字段类,需要和数据库中的字段保持一致,它也是Dal层返回的数据类型;

dao下的mapper,定义了一些对数据库操作的方法,类似于定义接口,真实的实现在resource目录下的mapper.xml中,这里用的是mybatis。

Service层

service类:接口,定义对外提供的接口;

serviceImpl类:接口的实现类,Autowire Mapper,然后用mapper对象操作数据库对象,因为mapper对象处理的是DO对象,而它对外提供和接受的都是BO对象,因此需要helper类

helper类:负责DO对象和BO对象的转化,

以及请求参数中jsonString的转化;
BO类:业务的数据对象

Controller层

RequestMapping决定url进入哪个方法。

Autowire Service后直接调用Service对象,返回结果封装为Result结果进行输出。

画了一副整体的图,可以看下,方便理解:

当然,最好的是看代码:https://github.com/bryanfeng/springboot-demo/commit/3e788c218ae3c4ffd90a38cb84f4d24ee42d374f

SpingBoot三——基础架构的更多相关文章

  1. IT基础架构规划方案三(IT基础软件和系统规划)

    IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...

  2. IT基础架构规划方案一(网络系统规划)

    背景                   某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...

  3. IT基础架构规划方案二(计算机系统与机房规划规划)

    计算机系统规划       服务器硬件选型规划方案       根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...

  4. IT基础架构规划方案之实际网络设计案例

    根据某集团总部新办公大楼.厂房和分支机构(店面)的情况,以及IT部门对网络节点数.网络应用和分支机构(店面)的初步规划,对企业的总体网络拓扑结构进行设计,如下图. 设备选型和部署参考: 类型 设备选型 ...

  5. [翻译]用 Puppet 搭建易管理的服务器基础架构(3)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Manuel Kiessling.欢迎加 ...

  6. [Search Engine] 搜索引擎分类和基础架构概述

    大家一定不会多搜索引擎感到陌生,搜索引擎是互联网发展的最直接的产物,它可以帮助我们从海量的互联网资料中找到我们查询的内容,也是我们日常学习.工作和娱乐不可或缺的查询工具.之前本人也是经常使用Googl ...

  7. 移动互联网实战--Web Restful API设计和基础架构

    前言: 在移动互联网的大潮中, Web Restful API逐渐成为Web Server重要的一个分支. 移动端和服务端的交互, 主流的方式还是通过Http协议的形式来进行. 请求以Get/Post ...

  8. 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台

    面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...

  9. [Architecture Design] 3-Layer基础架构

    [Architecture Design] 3-Layer基础架构 三层式体系结构 只要是软件从业人员,不管是不是本科系出身的,相信对于三层式体系结构一定都不陌生.在三层式体系结构中,将软件开发所产出 ...

随机推荐

  1. Jedis和JAVA对象的序列化和反序列化的使用

    1. Jedis版本: jedis-2.6.2.jar 背景:现在系统提供portal接口服务,使用JDBC直接查询数据库,使用jedis提供的缓存功能,在JDBC前面加上Redis,先从Redis中 ...

  2. C#中的编译开关

    c#不支持宏定义,只支持编译开关. ======================================我想加上#define xxx就编译a代码,否则编译b代码,像这样的:#if xxxa ...

  3. 【第二十三章】 springboot + 全局异常处理

    一.单个controller范围的异常处理 package com.xxx.secondboot.web; import org.springframework.web.bind.annotation ...

  4. POJ 1753 Flip Game(bfs+位压缩运算)

    http://poj.org/problem?id=1753 题意:一个4*4的棋盘,只有黑和白两种棋子,每次翻转一个棋子,并且其四周的棋子也跟着翻转,求棋盘全为黑或全为白时所需的最少翻转次数. 思路 ...

  5. vscode中使用EF脚手架生成数据库上下文(scaffold-dbcontext)

    目前在vscode上用netcore + ef core,在用dbfirst的方式生成模型和context上下文一直没有找到方法,之前在vs2017中,的nuget管理控制台输入命令: Scaffol ...

  6. R语言低级绘图函数-abline 转载

    abline 函数的作用是在一张图表上添加直线, 可以是一条斜线,通过x或y轴的交点和斜率来确定位置:也可以是一条水平或者垂直的线,只需要指定与x轴或y轴交点的位置就可以了 常见用法: 1)添加直线 ...

  7. Ubuntu 14.04 编写service 服务

    有时我们需要将特定操作封装成服务,通过服务启动停止,例如nginx的启动停止,service nginx start 或者service nginx stop 下面我们将编写一个demo cd /et ...

  8. Spring boot 遇到了连接mysql的错误

    问题1: Establishing SSL connection without server's identity verification is not recommended. Accordin ...

  9. kali linux下几个更新命令的区分

    首先更新命令有:apt-get update ,apt-get upgrade ,apt-get dist-upgrade等三个: (1)apt-get update:只更新软件包的索引源,作用:同步 ...

  10. Android系统广播处理机制

    Android系统中的广播是广泛用于应用程序之间通信的一种手段,它类似于事件处理机制,不同的地方就是广播的处理是系统级别的事件处理过程(一般事件处理是控件级别的).在此过程中仍然是离不开Intent对 ...