IOC就是实现依赖注入,反转控制,解决类与类之间的关联
下面我们来举个例子说明一下IOC
首先我们定义一个接口(ABIf),三个类(A,B,Test)
接口ABIf代码如下:
public interface ABIf {
public void say();
}
A类代码如下:
public class A implements ABIf{
public void say(){
System.out.println("A speaking");
}
}
B类代码如下:
public class B implements ABIf {
public void say() {
System.out.println("B Speaking");
}
}
Test代码如下:
public class Test(){
//现在我们开始注入依赖
//首先要做的是在Test类中增加一个ABIf的属性
private ABIf abif;
//添加setter与getter方法
public ABIf getAbif() {
return abimp;
}
public void setAbif(ABIf abif) {
this.abimp = abimp;
}
}
通过上面的代码,我们可以看出!在Test类中我们通过类似于JavaBean的getter与setter方法得到的信息!但是依赖是从哪里注入的呢?
答案就是在Spring的xml文件!
下面我们来看看我们的Spring的xml文件关于依赖注入的关键代码:
<beans>
<!-- A类的信息 -->
<bean id="a" class="demo.A"/>
<!-- B类的信息 -->
<bean id="b" class="demo.B"/>
<!-- 在Test类中注入接口,即C类的属性abif -->
<bean id="test" class="demo.Test">
<!-- 注意,这个property的name必须与Test类的abif属性名相同 -->
<property name="abif">
<!-- 这一步是确定接口到底要多态到哪一个类,我们这里确定为B类 -->
<ref bean="b"/>
</property>
</bean>
</beans>
通过以上步骤我们就已成了Spring中关于IOC的依赖注入了!
当然以上是我的个人看法啦!希望看了我文章的人对我的看法多给点意见啦!欢迎提出意见让我多多学习哦!