面试:Spring IOC 与 DI 、AOP的理解

面试:Spring IOC 与 DI 、AOP的理解

Spring IOC

Inversion of Control 翻译为中文也就是控制反转,它不是一门技术,而是一种思想。

在我们传统编程方式中,我们都是在对象内部通过new进行创建对象,这样是程序主动去创建和依赖对象,什么时候申请资源、使用资源、释放资源。这样子造成了我们对象之间的耦合性很高,牵一发而动全身。而IOC是一个专门来管理对象容器,由IOC容器去控制对象的生命周期。我们只需要给IOC去列一张清单,这时候我们IOC就能把我们列出来的对象给管理起来。

控制 Control

控制指的是控制外部资源的获取、控制对象的生命周期。

翻转 Inversion

翻转是指传统编程我们都是通过在开发人员在代码中去管理bean,而现在使用Spring框架后由Spring IOC来控制程序中的外部资源、控制对象的生命周期等。所以取名“反转”,即控制的权利由开发人员转移到了Spring框架。由Spring框架帮我创建我们对象中依赖的对象,我们的对象只能被动的接受。

好处

​对象和对象之间的耦合度变低了,便于测试、便于功能复用。

DI

DI(Dependency Injection)翻译成中文叫做“依赖注入”,既然对象的整个生命周期都是由Spring框架来维护的,那么我的这个对象中引用了另一个对象,你打算怎么办?Spring框架自然考虑到这一点了。“依赖注入”这两个词语也要拆开来讲:

依赖

​ 我的A对象中引用了B对象,也就是说A对象依赖B对象。你要通过配置文件告诉Spring你的对象之间的依赖关系。

注入

你的对象已经交给Spring管理了,你也告诉Spring你的对象之间的依赖关系了,那么在合适的时候,由Spring把你依赖的其他对象注入给你。

AOP

AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。我理解的核心思想就是把方法分为方面代码(共性代码)和业务核心代码。方面代码集中编码一次,编写业务时无需考虑方面的事情(比如日志,权限等)只需要专注于业务核心的实现,在方式执行会把方面代码织入目标方法中,大大降低了业务的复杂程度,并且增加了代码的可复用性。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值