几句话讲清楚:spring控制反转与依赖注入

1. 要解决什么问题

初学者可能会对spring框架的控制反转和依赖注入有点晕,网上很多文章也写得也都是云里雾里。

要理解一项技术,先要理解这个技术出现的背景,它是来解决什么问题的。

如果我们要用一个类,很自然的当然是new一个对象,然后再调用的它的方法。一般代码规模小的时候,这样的做法不会有什么大问题。但当代码规模大起来,成百上千个类之间相互new来new去,这些类之间耦合是非常强的,如想替换其中一个类,要修改的地方非常多,简直就是噩梦。

spring框架所谓控制反转与依赖注入的目的,就是除掉java类之间这些new来new去的操作,剪掉它们之间的依赖关系,就这么简单。

2. 怎么解决

把类之间new来new去的这套代码拎出来,放到一个统一的框架,类和类之间的依赖关系就被去掉了。创建对象的控制权本来是属于应用程序的,现在就转移到框架了,这就是所谓的“控制反转”。

控制反转有很多类型,“依赖注入”是其中一种,其他类型可参考相关资料。当框架发现某个类需要另外一个类时,框架就创建所需类(即被依赖的类)的对象,以参数(构造函数或setter函数的参数)方式传给(注入)调用类,这就是依赖注入。


评论

kevin
不错,懂了
回复 · 1年前