springboot+mybatis plus学习记录+三层架构理解

Posted MENGBAA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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连用。

第276天学习打卡(知识点回顾 springboot整合mybatis-plus)

知识点回顾

springboot整合Mybatis-plus

自动配置

  • MyBatisPlusAutoConfiguration配置类,MyBatisPlusProperties配置项绑定。mybatis-plus:xxx就是对mybatis-plus的定制
  • SqlSessionFactory自动配置好,底层是容器中默认的数据源
  • mapperLocations自动配置好的。有默认值。classpath* :/mapper/* * / *.xml;任意包的类路径下的所有mapper文件夹下任意路径下的所有xml都是sql映射文件。减一以后sql映射文件,放在mapper下
  • 容器也自动配置好了SqlSessionTemplate
  • @Mapper标注的接口也会被自动扫描;建议直接@MapperScane("")批量扫描即可

雷丰阳2021版SpringBoot2零基础入门springboot全套完整版(spring boot2)_哔哩哔哩_bilibili

以上是关于springboot+mybatis plus学习记录+三层架构理解的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis-Plus (SpringBoot2 版) Learning Day01

springboot+mybatis plus学习记录+三层架构理解

Mybatis-Plus学习笔记

SpringBoot-Mybatis_Plus学习记录之公共字段自动填充

mybatis_plus简单学习

mybatis_plus简单学习