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学习记录+三层架构理解