第二章 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、寫一個接口及一個接口實現類,如UserDao及UserDaoImpl
其實這裏我們隻需要一個類而已。但在實際項目開發的過程中,我們一般會使用麵向接口編程。所以這裏使用接口與接口實現的形式。
public interface UserDao { public void save(); }
public class UserDaoImpl implements UserDao { public void save() { System.out.println("保存用戶..."); } }
然後在下麵spring的配置文件中,把接口實現類交由Spring容器管理.
c、spring配置文件(如: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 idUserDao userDao = (UserDao) context.getBean("userDao");
最後更新:2017-04-03 18:52:14