仅作为本人学习的一个记录,可能有的说法或者用法不准确

三层架构

三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(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学习记录+三层架构理解相关推荐

  1. C#学习之三层架构实例

    如有雷同,不胜荣欣,如转载,请注明 一.三层架构实例 首先学习三层架构模式­--三层架构实现的留言和查看留言 下面是本人学习三层架构的一点感想和理解,肯定有许多不足的地方,欢迎大家斧正,谢谢,废话到此 ...

  2. MVC与三层架构理解

    文章目录 1. JSP的发展 2. MVC思想 优缺点 3. 三层架构 为什么使用三层 三层优缺点 4. MVC与三层架构的区别 1. JSP的发展 早期只有Servlet,只能使用response输 ...

  3. SpringMVC学习之三层架构

    Spring MVC关于三层架构   在我们进行学习之前要先了解什么开发的三层架构以及MVC模式是啥. 概述   我们的开发架构一般都是基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B ...

  4. 三层架构理解(表现层、业务层、持久层)

    三层架构:即表现层.业务层.持久层. 大话一下这三个层. 举例1+1=? 你输入1+1=?的地方就是表现层,业务层把1+1=?拆成"1","+","1 ...

  5. springboot+mybatis+thymeleaf学习一个简单的管理系统

    在淘宝上买的课程的一个例子,看了视频,抄了一遍代码,那时候刚开始学springboot,所以感觉没什么用,然后就又学习了一段时间.最近回想起来有这样的一个系统符合我现阶段的学习程度,然后就又写了一遍. ...

  6. Mybatis注解学习记录

    Mybatis注解使用 1. SQL语句映射 1.1 @Select注解:实现查询功能 1.1.1 用法 1.2 @Insert注解:实现新增功能 1.2.1 用法 1.3 @Update注解:实现更 ...

  7. SpringCloud SpringBoot mybatis分布式微服务云架构开发Web应用

    静态资源访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /s ...

  8. 物流快递系统前、后端+Java语言+SpringBoot项目+MVC三层架构+maven+Mysql+Tomcat+可以用于学习SpringBoot项目入门

    物流快递系统前.后端+Java语言+SpringBoot项目+MVC三层架构+Mysql+Tomcat+可以用于学习SpringBoot项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资 ...

  9. MyBatis基础学习知识点2

    本文衔接MyBatis基础学习知识点1,继续对以下两个问题进行探讨 1.dao配置文件主要是用来干什么的?如何进行配置? 2.使用测试方法测试程序运行是如何实现的?每条语句起什么作用? 目录 dao配 ...

最新文章

  1. 区块链是互联网未来十年中举足轻重的技术
  2. 添加chorme插件时出现“程序包无效”
  3. Nginx模块开发中使用PCRE正则表达式匹配
  4. 支持向量机原理及scikit-learn实现
  5. WTL 学习博文地址
  6. 智能技术改变淘宝,阿里巴巴首次详解核心商业AI体系
  7. Redis(八):Zset有序集合数据类型详解
  8. 数字化转型— 华为业务流程模型学习
  9. GPRS模块SIM900A怎么用
  10. [关系图谱] 二.Gephi导入共线矩阵构建作者关系图谱
  11. swash编译安装教程
  12. The power input for PSU 2 is lost
  13. VB:编一个子过程DeleStr(s1,s2),将字符串s1中出现的s2子字符串删去,结果存放在s1中
  14. Unity VR:如何修改fbx动画
  15. 小白普及:云主机与传统服务器的区别
  16. h5打开麦克风权限录音_h5打开麦克风权限录音_通过H5实现html页面的录音和播放 (Recorder用于html5录音)......
  17. 软考__所有涉及的图和表
  18. 28.41dB,视频超分最新力作:PFNL+双向信息传播=OVSR
  19. python小白学习第三节
  20. CurrentHashMap的实现原理

热门文章

  1. 上饶广信区个体私营经济协会新班子力争打造全国样板
  2. MySQL 查看版本的 5 种方法
  3. chart.js-饼状图和甜甜圈图
  4. java 实现短信验证码生成器
  5. electron-builder 配置篇
  6. JQuery实例:可以编辑的表格
  7. 题8.16:输入一个字符串, 内有数字和非数字字符, 例如:A123x456 17960 ? , 302tab5876,将其中连续的数字作为一个整数, 依次存放到一数组a中。例如, 123 放在a[0
  8. JAVA利用反射模式调用实现类
  9. 全国计算机四级考试英语,英语四级历年真题卷 全国计算机等级考试四级网络工程师历年真题及答案_图文.doc...
  10. jQuery eislideshow 图片轮播