springboot+mybatis plus学习记录+三层架构理解
仅作为本人学习的一个记录,可能有的说法或者用法不准确
三层架构
三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。(百度定义)
这样看起来晦涩难懂,让我们来用一个例子来“白话一下”三层架构。
表示层(UI):用于展示或者收集数据,就好比我们登录一个管理系统时展示给我们自己看的“页面”,或者是系统中查询结果返回在页面上的部分。
业务逻辑层(BLL):用于处理业务逻辑,比如判断该用户是否已经登录或者已经注册,再或者是查询管理系统中为男性的人数等等
数据访问层(DAL):用于与数据库进行交互,比如从数据库中拿到表的所有数据,注意仅仅只是数据,并没有什么逻辑处理。
这样一看大家都能明白为什么要分三层架构了吧,就好比把做饭这一个功能块拆分开来,有的人负责洗菜,有的人负责炒菜,有的人负责最后收拾厨房。各自分工,每个板块耦合性就没有那么强。
项目呈现
三层架构在项目中的体现如下图所示:
dao-------数据访问层 controllers--------展示层 services-----------业务逻辑层
pojo------数据库中的表对应的实体类 common----------公共工具类
注解总结
@TableName
用法:映射数据库的表名,通俗来说就是将pojo类与数据库对应的表进行绑定
@TableId
用法:表示该字段为表的主键字段
type指的是主键类型,该处为自增
@Service
用法:用于在类之前注解,表示该类是一个service类,通俗来说就是把该类交由spring进行管理,在要使用时,直接通过其他注解直接由spring进行实例化
@Repository
用法:同样和上面的注解一样,该注解表示被标注类交由spring进行管理,在使用时通过其他注解直接注入。而该注解与@Service不同点在于应用层不同,@Service用于业务逻辑层,而@Repository用于存储层
/*** demo示例的dao数据逻辑层* 需要继承mybatis plus的basemapper接口*/
@Repository
public interface DemoDao extends BaseMapper<Demo> {
}
@Autowired
用法:表示在该处注入实例,通俗理解为由spring进行对象的实例化,通常与以上的@Service和@Repository连用。
springboot+mybatis plus学习记录+三层架构理解相关推荐
- C#学习之三层架构实例
如有雷同,不胜荣欣,如转载,请注明 一.三层架构实例 首先学习三层架构模式--三层架构实现的留言和查看留言 下面是本人学习三层架构的一点感想和理解,肯定有许多不足的地方,欢迎大家斧正,谢谢,废话到此 ...
- MVC与三层架构理解
文章目录 1. JSP的发展 2. MVC思想 优缺点 3. 三层架构 为什么使用三层 三层优缺点 4. MVC与三层架构的区别 1. JSP的发展 早期只有Servlet,只能使用response输 ...
- SpringMVC学习之三层架构
Spring MVC关于三层架构 在我们进行学习之前要先了解什么开发的三层架构以及MVC模式是啥. 概述 我们的开发架构一般都是基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B ...
- 三层架构理解(表现层、业务层、持久层)
三层架构:即表现层.业务层.持久层. 大话一下这三个层. 举例1+1=? 你输入1+1=?的地方就是表现层,业务层把1+1=?拆成"1","+","1 ...
- springboot+mybatis+thymeleaf学习一个简单的管理系统
在淘宝上买的课程的一个例子,看了视频,抄了一遍代码,那时候刚开始学springboot,所以感觉没什么用,然后就又学习了一段时间.最近回想起来有这样的一个系统符合我现阶段的学习程度,然后就又写了一遍. ...
- Mybatis注解学习记录
Mybatis注解使用 1. SQL语句映射 1.1 @Select注解:实现查询功能 1.1.1 用法 1.2 @Insert注解:实现新增功能 1.2.1 用法 1.3 @Update注解:实现更 ...
- SpringCloud SpringBoot mybatis分布式微服务云架构开发Web应用
静态资源访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /s ...
- 物流快递系统前、后端+Java语言+SpringBoot项目+MVC三层架构+maven+Mysql+Tomcat+可以用于学习SpringBoot项目入门
物流快递系统前.后端+Java语言+SpringBoot项目+MVC三层架构+Mysql+Tomcat+可以用于学习SpringBoot项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资 ...
- MyBatis基础学习知识点2
本文衔接MyBatis基础学习知识点1,继续对以下两个问题进行探讨 1.dao配置文件主要是用来干什么的?如何进行配置? 2.使用测试方法测试程序运行是如何实现的?每条语句起什么作用? 目录 dao配 ...
最新文章
- 区块链是互联网未来十年中举足轻重的技术
- 添加chorme插件时出现“程序包无效”
- Nginx模块开发中使用PCRE正则表达式匹配
- 支持向量机原理及scikit-learn实现
- WTL 学习博文地址
- 智能技术改变淘宝,阿里巴巴首次详解核心商业AI体系
- Redis(八):Zset有序集合数据类型详解
- 数字化转型— 华为业务流程模型学习
- GPRS模块SIM900A怎么用
- [关系图谱] 二.Gephi导入共线矩阵构建作者关系图谱
- swash编译安装教程
- The power input for PSU 2 is lost
- VB:编一个子过程DeleStr(s1,s2),将字符串s1中出现的s2子字符串删去,结果存放在s1中
- Unity VR:如何修改fbx动画
- 小白普及:云主机与传统服务器的区别
- h5打开麦克风权限录音_h5打开麦克风权限录音_通过H5实现html页面的录音和播放 (Recorder用于html5录音)......
- 软考__所有涉及的图和表
- 28.41dB,视频超分最新力作:PFNL+双向信息传播=OVSR
- python小白学习第三节
- CurrentHashMap的实现原理
热门文章
- 上饶广信区个体私营经济协会新班子力争打造全国样板
- MySQL 查看版本的 5 种方法
- chart.js-饼状图和甜甜圈图
- java 实现短信验证码生成器
- electron-builder 配置篇
- JQuery实例:可以编辑的表格
- 题8.16:输入一个字符串, 内有数字和非数字字符, 例如:A123x456 17960 ? , 302tab5876,将其中连续的数字作为一个整数, 依次存放到一数组a中。例如, 123 放在a[0
- JAVA利用反射模式调用实现类
- 全国计算机四级考试英语,英语四级历年真题卷 全国计算机等级考试四级网络工程师历年真题及答案_图文.doc...
- jQuery eislideshow 图片轮播