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

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

三层架构

三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。(百度定义)

这样看起来晦涩难懂,让我们来用一个例子来“白话一下”三层架构。

表示层(UI):用于展示或者收集数据,就好比我们登录一个管理系统时展示给我们自己看的“页面”,或者是系统中查询结果返回在页面上的部分。

业务逻辑层(BLL):用于处理业务逻辑,比如判断该用户是否已经登录或者已经注册,再或者是查询管理系统中为男性的人数等等

数据访问层(DAL):用于与数据库进行交互,比如从数据库中拿到表的所有数据,注意仅仅只是数据,并没有什么逻辑处理。

这样一看大家都能明白为什么要分三层架构了吧,就好比把做饭这一个功能块拆分开来,有的人负责洗菜,有的人负责炒菜,有的人负责最后收拾厨房。各自分工,每个板块耦合性就没有那么强。

项目呈现

三层架构在项目中的体现如下图所示:

springboot+mybatis plus学习记录+三层架构理解_第1张图片

dao-------数据访问层           controllers--------展示层                services-----------业务逻辑层

pojo------数据库中的表对应的实体类          common----------公共工具类

注解总结

@TableName

用法:映射数据库的表名,通俗来说就是将pojo类与数据库对应的表进行绑定

@TableId

用法:表示该字段为表的主键字段

springboot+mybatis plus学习记录+三层架构理解_第2张图片type指的是主键类型,该处为自增

@Service

用法:用于在类之前注解,表示该类是一个service类,通俗来说就是把该类交由spring进行管理,在要使用时,直接通过其他注解直接由spring进行实例化

@Repository

用法:同样和上面的注解一样,该注解表示被标注类交由spring进行管理,在使用时通过其他注解直接注入。而该注解与@Service不同点在于应用层不同,@Service用于业务逻辑层,而@Repository用于存储层

/**
 * demo示例的dao数据逻辑层
 * 需要继承mybatis plus的basemapper接口
 */
@Repository
public interface DemoDao extends BaseMapper {
}

@Autowired

用法:表示在该处注入实例,通俗理解为由spring进行对象的实例化,通常与以上的@Service和@Repository连用。

springboot+mybatis plus学习记录+三层架构理解_第3张图片

你可能感兴趣的:(学习成长,学习)