Spring學習筆記(一) 通過Spring控制反轉(IOC:Inversion of Control)爲對象設置屬性

首先在網上下載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)



發佈了13 篇原創文章 · 獲贊 13 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章