标签:
工程目录如下

要加入的jar文件有三个。
下面比较IoC与传统bean调用的不同。
接口类
package wen;
public interface Hello {
public String world= null;
public String setWords(String world) ;
public void getWords();
}
接口实现类
package wen;
public class HelloImp implements Hello{
private String wString ;
public HelloImp(){
System.out.println("我被容器自动调用");
}
@Override
public String setWords(String world) {
this.wString = world ;
return wString;
}
@Override
public void getWords() {
System.out.println("第一个spring:"+wString);
}
}
传统的bean调用
要先实例化一个对象 ,通过对象来使用这个类的方法。
package wen;
public class Test {
public static void main(String [] args ){
Hello hello = new HelloImp() ;
hello.setWords("你好") ;
hello.getWords();
}
}
IoC容器实现
在xml文件中配置类,类的属性,类的方法和类之间的关系 。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="hello" class="wen.HelloImp"> </bean> </beans>
spring提供了很好的测试方法,可以了解配置的类是否在spring容器中实例化。
package wen;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class HelloFactory {
public static void main(String [] args){
XmlBeanFactory bFactory = new XmlBeanFactory(
new ClassPathResource("spring.xml")) ;
Hello hello = (Hello)bFactory.getBean("hello") ;
hello.setWords("你好") ;
hello.getWords();
bFactory.destroySingleton("hello");
}
}
两者对比
传统的方法:通过接口访问对象要实例化,这增加了代码之间的耦合度,调用时还要了解实现接口类中定义的方法,还不容易对生成的对象进行管理。
容器管理方式:当程序中用到这个对象的时候,依赖容器进行实例化,实现方法调用时,只要参考接口中的实现方法,还可以对对象进行管理,消除。
Spring可以用在任何java项目中,从一定程序上说,它是对jdk的扩展,也是相对独立的,可以当作是一个管理java类的容器。
标签:
原文地址:http://www.cnblogs.com/chuiyuan/p/4599521.html