IOC反转是通过applicationContext.xml配置文件来配置bean,并通过该配置文件实现类的实例化,这样的做得优点是非侵入式,降低各类之间的耦合性,但如果通过DI注入的化,
优点是什么。。。,还不清楚,感觉通过引用,在可读性上感觉会变差。
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><bean name="source" class="pojo.Source">
<property name="fruit" value="橙子" />
<property name="suga" value="多糖" />
<property name="size" value="超大杯" />
</bean>
<bean name = "juiceMaker" class="pojo.JuiceMaker">
<property name="source" ref="source" />
</bean>
Souce.class
package pojo;
public class Source {
private String fruit;
public String getFruit() {
return fruit;
}
public void setFruit(String fruit) {
this.fruit = fruit;
}
public String getSuga() {
return suga;
}
public void setSuga(String suga) {
this.suga = suga;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
private String suga;
private String size;
}
JuiceMaker .class
package pojo;
public class JuiceMaker {
private Source source = null;
public Source getSource() {
return source;
}
public void setSource(Source source) {
this.source = source;
}
public String makeJuice(){
String juice = “xxx用户点了一杯” + source.getFruit() + source.getSuga() + source.getSize();
return juice;
}
}
package pojo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
Testspring
public class Testspring {
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
Source source = (Source)context.getBean("source");
System.out.println(source.getFruit());
JuiceMaker juiceMaker = (JuiceMaker)context.getBean("juiceMaker");
System.out.println(juiceMaker.makeJuice());
}
}