SpingBoot三——基础架构
◆版权声明:本文出自胖喵~的博客,转载必须注明出处。
转载请注明出处: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三——基础架构的更多相关文章
- IT基础架构规划方案三(IT基础软件和系统规划)
IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...
- IT基础架构规划方案一(网络系统规划)
背景 某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...
- IT基础架构规划方案二(计算机系统与机房规划规划)
计算机系统规划 服务器硬件选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...
- IT基础架构规划方案之实际网络设计案例
根据某集团总部新办公大楼.厂房和分支机构(店面)的情况,以及IT部门对网络节点数.网络应用和分支机构(店面)的初步规划,对企业的总体网络拓扑结构进行设计,如下图. 设备选型和部署参考: 类型 设备选型 ...
- [翻译]用 Puppet 搭建易管理的服务器基础架构(3)
我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Manuel Kiessling.欢迎加 ...
- [Search Engine] 搜索引擎分类和基础架构概述
大家一定不会多搜索引擎感到陌生,搜索引擎是互联网发展的最直接的产物,它可以帮助我们从海量的互联网资料中找到我们查询的内容,也是我们日常学习.工作和娱乐不可或缺的查询工具.之前本人也是经常使用Googl ...
- 移动互联网实战--Web Restful API设计和基础架构
前言: 在移动互联网的大潮中, Web Restful API逐渐成为Web Server重要的一个分支. 移动端和服务端的交互, 主流的方式还是通过Http协议的形式来进行. 请求以Get/Post ...
- 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台
面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...
- [Architecture Design] 3-Layer基础架构
[Architecture Design] 3-Layer基础架构 三层式体系结构 只要是软件从业人员,不管是不是本科系出身的,相信对于三层式体系结构一定都不陌生.在三层式体系结构中,将软件开发所产出 ...
随机推荐
- linux磁盘分区详解【转】
本文装载自:http://blog.csdn.net/aaronychen/article/details/2270048#comments 在学习 Linux 的过程中,安装 Linux 是每一个初 ...
- luogu P2114 [NOI2014]起床困难综合症 位运算 二进制
建议去uoj那里去测,数据比较强 位运算的题目,就得一位一位的分开考虑 然后枚举初始值的最高位是0 是1 的最终攻击 (二进制内)最高位是1肯定比次位是1次次位是1次次次位是1···的大吧,显然 然后 ...
- 封装TeeChart控件
public class MyChart { //字段 private TChart tChart; /// <summary> /// 构造函数,默认不是3D效果 /// </su ...
- 【错误解决】SVN常见错误及解决方式
1.Error while creating module:org.apache.subversion.javahl.ClientException:Authorization failed svn: ...
- 【Apache】的运营之道
1.“一个修修补补”的服务? 大家可能听说过 Apache 是一个双关语 “a patchy Web server”,意思为一个修修补补的 web 服务,即通过一系列的补丁做的服务.但是这并不是 Ap ...
- 【jdk源码分析】java.lang.Appendable
1.概述 public interface Appendable 能够被添加 char 序列和值的对象.如果某个类的实例打算接收取自 Formatter 的格式化输出,那么该类必须实现 Appenda ...
- UVa 10618 跳舞机
https://vjudge.net/problem/UVA-10618 这道题目题意很复杂,代码也是参考了别人的,因为自己实在是写不出.d[i][a][b][s]表示分析到第i个箭头时,此时左脚处于 ...
- python 深拷贝
from copy import deepcopy #create a tuple tuplex = (, [], True) print(tuplex) #make a copy of a tupl ...
- Android JNI学习(三)——Java与Native相互调用
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- 【Golang】解决Go test执行单个测试文件提示未定义问题
背景 很多人记录过怎么执行Go test单个文件或者单个函数,但是要么对执行单文件用例存在函数或变量引用的场景避而不谈,要么提示调用了其它文件中的模块会报错.其实了解了go test命令的机制之后,这 ...