分层解耦相关知识点

三层架构

简介

在这里插入图片描述

具体案例

原始代码

在这里插入图片描述

DAO层代码

分别是一个接口实现类以及一个接口,用接口是为了提高程序的灵活性
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

service层

先是一个接口,之后是接口的实现类(不完整),最后补全了实现类里的一些部分
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里service层是逻辑分析层,并没有数据,需要从Dao层获取数据,所以要面向Dao层的接口创建一个对象,采用多态的方法,左边是接口对象,右边new一个实例化子类,之后利用接口对象去调用功能,这里就用到了刚刚在Dao层写的方法(返回值为一个包含数据的list列表)

controller层

在这里插入图片描述
这里需要调用经过逻辑处理之后的数据,所以要面向service层接口创建一个接口对象,new一个实例化子类,之后利用该对象去调用方法,得到返回值,最后响应给前端

总结

在这里插入图片描述

分层解耦

思想

在这里插入图片描述
在这里插入图片描述
之前的分层 层与层之间过于耦合,所以要想办法进行解耦

在这里插入图片描述
将接口的实例化子类放入一个容器中,当其他应用程序需要时,为应用程序提供资源。

IOC&DI 入门

简介

在这里插入图片描述

控制反转

在这里插入图片描述
只需要在实现类上方加上一个注解@Component 即可实现将实现了放入容器中,使之成为容器的bean

具体代码
在这里插入图片描述

依赖注入

在这里插入图片描述
在这里插入图片描述
首先先解除依赖(也就是将”new 实例化子类“删除),之后注入依赖 就是在成员变量上面加一个注解@Autowired,运行时,IOC容器会提供该类型的bean对象,并赋值给该变量

IOC详解

详细种类

在这里插入图片描述
在这里插入图片描述
注意,controller想要成为bean,只能用自己独有的注解,但是因为@RestController注解以及包括了@Controller注解,所以,无需再加注解

在这里插入图片描述
注意要将文件放在启动类所在的包以及子包下

DI详解

在这里插入图片描述
@Autowired注解 默认是按照类型进行,但是一但有多个同一类型的bean,将会报错,通过以下几种方案解决,

第一,对想要的bean的IOC注解上加上@Primary注解,用来表示是想要该bean

第二,在@Autowired注解上加上@Qualifier(指定bean的名称,默认是类名首字母小写)

第三,如图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值