解释Spring中IOC, DI, AOP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解释Spring中IOC, DI, AOP相关的知识,希望对你有一定的参考价值。

解释Spring中IOC, DI, AOP,不要那些专业术语,通俗点哈,谢谢了~~

ioc就是控制翻转或是依赖注入。通俗的讲就是如果在什么地方需要一个对象,你自己不用去通过new 生成你需要的对象,而是通过spring的bean工厂为你长生这样一个对象。
aop就是面向切面的编程。比如说你每做一次对数据库操作,都要生成一句日志。如果,你对数据库的操作有很多类,那你每一类中都要写关于日志的方法。但是如果你用aop,那么你可以写一个方法,在这个方法中有关于数据库操作的方法,每一次调用这个方法的时候,就加上生成日志的操作。
说的不是很清晰,多写多看就能明白了。
参考技术A 1.IoC是什么?
IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多轻量级容器都在广泛使用的模式。

2.IoC解决了什么问题?
在IoC出现以前,组件之间的协调关系是由程序内部代码来控制的,或者说,以前我们使用New关键字来实现两组间之间的依赖关系的。
这种方式就造成了组件之间的互相耦合。IoC(控制反转)就是来解决这个问题的,它将实现组件间的关系从程序内部提到外部容器来管理。
也就是说,由容器在运行期将组件间的某种依赖关系动态的注入组件中。

3.IoC的实现方式 及 与DI的关系?
(1).依赖查找(Dependency Lookup):容器中的受控对象通过容器的API来查找自己所依赖的资源和协作对象。
这种方式虽然降低了对象间的依赖,但是同时也使用到了容器的API,造成了我们无法在容器外使用和测试对象。
依赖查找是一种更加传统的IoC实现方式。

(2).依赖注入(Dependency Injection):这就是DI,字面上理解,依赖注入就是将服务注入到使用它的地方。对象只提供普通的方法让容器去决定依赖关系,
容器全权负责组件的装配,它会把符合依赖关系的对象通过属性(JavaBean中的setter)或者是构造子传递给需要的对象。
相对于IoC而言,依赖注入(DI)更加准确地描述了IoC的设计理念。所谓依赖注入,即组件之间的依赖关系由容器在应用系统运行期来决定,
也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。

4.Spring中的IoC与DI:
IoC是Spring的核心,贯穿始终。对于Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系。
Spring中DI有两种实现方式---Setter方式(传值方式)和构造器方式(引用方式)。
参考技术B IOC 控制反转
好比你有一个插座,上面有几个插口,现在你要用笔记本,你插上插头,可是你不用笔记本用别的电器,是不是又要插上另一个插口,这些都写在程序里的,可是一般class类我们不介意改动,所以就在配置文件中配置,动态写,IOC就实现了这个 配置文件中改下注入就OK了

AOP 面向切面编程
比如你要对所有方法以add开头的方法进行监听,决定是放行,还是拦截
可以用来对所有的增删改操作写入日志

以上是关于解释Spring中IOC, DI, AOP的主要内容,如果未能解决你的问题,请参考以下文章

对Spring的IoC和DI最生动的解释

对Spring的IoC和DI最生动的解释

用通俗的语言解释 Spring 中的 DI IOC 和AOP概念

这是我见过对 IOC 和 DI 解释的最清楚的一篇文章了!

spring的控制反转(IOC)和依赖注入(DI)

spring的控制反转(IOC)和依赖注入(DI)