依赖注入即控制反转,意思是控制权从人移交到了Spring框架手里。
当类A中的某个方法需要用到对象B,我们一般这么写:
class A{ public void say{ B b = new B(); } }
这个对象B是我们人为创建的。
当Spring而非人来接手对象的创建工作时,控制权就由人转移到了Spring框架手上,Spring通过读取配置文件中的配置,创建对象并注入到需要使用该对象的类A中,这也就是依赖注入。此时,A中必须新增方法来接收Spring注入过来的对象。
一般用set方法或构造方法来接收。
class A{ private B b; public setB(B b){ this.b = b; } public void say(){ b.do(); } }
或者
class A{ private B b; public A(B b){ this.b = b; } public void say(){ b.do(); } }希望大家批评指正。