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基础架构 三层式体系结构 只要是软件从业人员,不管是不是本科系出身的,相信对于三层式体系结构一定都不陌生.在三层式体系结构中,将软件开发所产出 ...
随机推荐
- ubuntu下交叉编译lftp
一.背景: lftp依赖于ncurses,readline和gnutls 二.准备工作 2.1交叉编译ncurses 2.1.1获取ncurses源码 wget ftp://ftp.invisible ...
- axis2框架用wsdl文件生成的服务端MessageReceiveInOut文件注意事项
在用axis2生成服务端文件和客户端文件,当客户端文件调用服务端文件时,都是通过wsdl文件生成的 配置文件进行相互的调用. 在一开始做开发测试的时候,通过soapUI进行调用接口的时候,可以调用成功 ...
- com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
作者原创,转载请注明转载地址 第一次遇到该异常,在网上搜了很长时间也没找到解决答案,特此记录 1.异常展示: com.fasterxml.jackson.databind.JsonMappingExc ...
- Change the Forwarding: RMT Architecture
Change the Forwarding: RMT Architecture Note on "Forwarding Metamorphosis: Fast Programmable Ma ...
- 08_Flume_Selector实践
实践一:replicating selector 1.目标场景 selector将event复制,分发给所有下游节点 2.Flume Agent配置 Agent配置 # Name the compon ...
- UVa 10801 电梯换乘
https://vjudge.net/problem/UVA-10801 题意:有多个电梯,每个电梯只能到达指定楼层,每个电梯有速度,如果中途换乘电梯,需要额外加60s,求从0层到达k层的最少时间. ...
- telnet不是内部或外部命令的解决方案
telnet主要是为了维护使用,windows默认不打开这个功能,所有无法登陆 按照下面截图,可轻松打开telnet功能 点击控制面板 选择程序和功能 点击左上角打开 turn windows fea ...
- Eclipse打JAR包,插件FatJar安装与使用
下载fatJar插件,解压缩后是一个.../plugins/(net...)把plugins下面的(net..)文件夹拷贝到eclipse 的plugins下,重新启动Eclipse3.1,Windo ...
- 图片保存到数据库以及C#读取图片
图片保存到数据库,如果是sqlserver就是Image类型,如果保存到Oracle就是blob类型,在c#中相对应的就是byte[]类型,同时只需要对读出的数据强制转换就行(byte[])objec ...
- 新概念 Lesson 2 Sorry, sir.
Is this your handbag? 这是你的手提包吗? Yes,it is. /No it isn't 人称代词的主格宾格 形容性物主代词的用法 Does the man get his um ...