javaweb第四次课后作业--MVC

本文探讨了三层架构中的问题,如何通过控制反转和依赖注入来降低逻辑层与响应层、数据层之间的耦合,以及如何在实际应用中使用@Controller,@Service,@Repository注解和@Autowired/@Primary/@Qualifier进行对象注入和管理。
摘要由CSDN通过智能技术生成

当我们了解完三层耦合之后,我们会发现,其中还是存在着一些问题不便于我们的修改,当我们的逻辑层名称或对象发生变化时,我们的响应层中创建逻辑层的代码需要发生变动,这里我们称逻辑层和响应层之间耦合,同理逻辑层还与数据层耦合

这里我们可以通过控制反转和依赖注入来实现,

首先,控制反转(IOC)指的是将创建的对象实体转移到外部容器中
依赖注入(DI)指的是外部容器为应用程序提供运行时所依赖的资源
我们将该外部容器称作为Bean

在代码中,我们先将创建的接口实体对象去掉赋值操作,不进行赋值,此时我们需要在相互耦合类的上面加上注解@Component,表示将该类交给IOC容器管理,然后我们需要为运行时的对象注入所依赖的对象,即在创建的实体对象上面加上注解@Autowired

但是在实际运用时,我们在控制反转中通常使用@Component注解的衍生类,分别为
@Controller标注在控制器类上   在@RestController注解中包含了该注解,所以一般不用手动添加
aff39f773aef4bbbb942f01657536557.png
@Service标注在业务类上
3674c5474a624a60a9440848504b9c91.png
@Repository标注在数据访问类上
8cc554bb5d8d42238dd0424e2b3e2ab1.png

同时我们在依赖注入的运用中,如果有多个类继承该接口并启用了控制反转,这时便会报错,因为程序不知道用依赖哪一个控制反转进行注入,所以在这里,我们需要为依赖注入添加条件
在@Component或其衍生类上面添加@Primary   表示该控制反转为首个依赖对象
或者在@Autowired上面添加@Qualifier("") 里面添加依赖的bean名,一般默认为类名的首字母小写
也可以使用@Resource(name="")来替换@Autowired,name为想要依赖的bean名

完成依赖注入和控制反转之后,我们来浏览器查看运行结果

196dcd1086ad4039abb5850c3aab44f6.png

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

槐序生花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值