首先在網上下載Spring的JAR包,分別爲:spring-framework-3.0.5.RELEASE-with-docs.zip 和 spring-framework-3.0.5.RELEASE-dependencies.rar
第一個解壓縮後是spring框架及文檔,第二個解壓縮後是spring框架的依賴JAR包。
在Eclipse中新建一個JAVA項目,併爲該項目添加自己的用戶庫,如果還不知到如何建立自己的用戶庫,參考創建自己的用戶庫
我創建2個用戶庫,spring3.0.5和common-logging,其中spring3.0.5裏面的JAR包是spring-framework-3.0.5.RELEASE-with-docs.zip解壓縮後dist文件夾,
common-logging裏面的JAR包是我自己在網上下載的com.springsource.org.apache.commons.logging-1.1.1.jar,導入完成後項目目錄如圖:
新建PersonService.java類,代碼如下:
package myspring;
public class PersonService {
private String name;
public void setName(String name){
this.name = name;
}
public void info(){
System.out.println("此人名爲"+name);
}
}
新建applicationContext.xml配置文件(注意:要在src目錄下新建,否則會找不到xml文件),將PersonService類部署在Spring配置文件當中,代碼如下:
<?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.5.xsd">
<!-- 將Person類部署成Spring容器中的Bean -->
<bean id="person" class="myspring.PersonService">
<property name="name" value="wawa"/>
</bean>
</beans>
編寫SpringTest.java類進行測試,代碼如下:
package myspring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest {
public static void main(String[] args){
//創建Spring的ApplicationContext
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//輸出Spring容器
System.out.println(ctx);
PersonService p = (PersonService)ctx.getBean("person");
p.info();
}
}
運行結果如下:
org.springframework.context.support.ClassPathXmlApplicationContext@1858aa0: startup date [Tue Oct 13 15:56:37 CST 2015]; root of context hierarchy
此人名爲:wawa
可以看出,輸出類Spring的applicationContext實例和PersonService實例。上面代碼並不是直接創建Person實例,
而是通過Spring容器獲取PersonService的nane的屬性值。Spring容器根據配置文件信息,負責創建PersonService實例,
併爲PersonService實例設置屬性值,這種由Spring容器爲對象設置屬性的方式稱作控制反轉(Inversion
of Control,IoC)