閱讀481 返回首頁    go 阿裏雲 go 技術社區[雲棲]


第二章 IoC 概念與簡單的使用


2.1 IoC的概念

        Inverseof Control,控製反轉是Spring容器的內核,AOP、聲明式事務等功能都是在此基礎上進行的。

        IoC主要功能是依賴關係的轉移。應用的本身不負責依賴對象的創建和維護,而是由Spring容器負責。控製權就由應用轉移到了外部容器。

        IoC的主要功能由控製反轉來解釋並不是很好理解。所以提出了新的概念DependencyInjection.

        DI依賴注入,調用類對某一接口實現類的依賴關係由第三方(容器或協作類)注入,以轉移對某一接口實現類的依賴。也就是在運行期,由外部容器(Spring)動態地將所依賴的對象注入到組件中去。



2.2 簡單的使用


a、創建工程,導入spring的核心jar

       如果是Web項目。直接把spring3的核心Jar包放到項目的WEB-INF/lib目錄下既可。      

       因為我們教學是使用MyEclipse平台,測試的時候是用Java Project。這裏使用MyEclipse導入Jar包。


右擊項目名  ->  Build Path  ->  Configure Build Path。出現Properties for 項目名的窗口。




選擇Libraries -> Add Library -> User Library



如果是第一次使用User Library(個人庫)。那麼你必須先新建一個Library。點擊User Libraries...出現下麵的窗口。



New -> 填寫User library name -> OK.。 如果之前已經有了個人的Spring Library。那麼這一步可以跳過。




選中你剛才創建的Library。點擊Add JARs。然後把你所需要的所有的Jar包加進Library中來。 如果之前已經有了個人的Spring Library。那麼這一步也可以跳過。




選中你的個人Library。OK就可以。





b、寫一個接口及一個接口實現類,如UserDaoUserDaoImpl

其實這裏我們隻需要一個類而已。但在實際項目開發的過程中,我們一般會使用麵向接口編程。所以這裏使用接口與接口實現的形式。

public interface UserDao {
	public void save();
}

public class UserDaoImpl implements UserDao {
	public void save() {
		System.out.println("保存用戶...");
	}
}


然後在下麵spring的配置文件中,把接口實現類交由Spring容器管理.


cspring配置文件(如:applicationContext.xml

這個配置文件可以上網找,或者在官方提供方的demo中獲取。

你也可以通過MyEclipse導入Spring的功能來得到一個配置文件。不過這樣做的話,MyEclipse會給你的項目導入一些它給提供的Spring Jar包。完成功能導入後,把這些Jar包移除就可以了。

你還可以直接新建一個xml文件,把我下麵的配置拷貝過去就可以。

詳情可參考MyEclipse 導入Hibernate功能一章:https://blog.csdn.net/p_3er/article/details/8965305


spring配置文件一般放在源碼根目錄(src)下:

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="https://www.springframework.org/schema/beans"
	xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="https://www.springframework.org/schema/p"
	xsi:schemaLocation="https://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
	
	<!-- 把一個剛才的接口實現類交由spring管理 -->
	<bean  ></bean>

</beans>



d、通過main方法測試

//啟動spring容器
		ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
		
		//通過容器獲取到對象,並注入到userDao中去.
                //getBean("userDao")中的userDao是剛才Spring配置文件中的 bean id
UserDao userDao = (UserDao) context.getBean("userDao");




最後更新:2017-04-03 18:52:14

  上一篇:go 如何成為編程高手
  下一篇:go C++內存管理學習筆記(6)