第11章 Spring框架入門_第1頁
第11章 Spring框架入門_第2頁
第11章 Spring框架入門_第3頁
第11章 Spring框架入門_第4頁
第11章 Spring框架入門_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第11章Spring框架入門11.1下載Spring框架11.2Spring框架作用及特點11.3Spring框架核心架構11.4Spring應用環(huán)境搭建11.5Bean的裝配110.6IoC11.7BeanFactory與ApplicationContext11.1下載Spring框架(1)下載地址:/download發(fā)布包結(jié)構說明:aspectj

。包含AspectJ相關的源代碼(src文件夾)及應用AspectJ的單元測試類(test文件夾)。dist。包含Spring源碼文件及發(fā)布的JAR文件。docs。包含Spring框架的API文檔(api文件夾),SpringMVC學習教程(MVC-step-by-step文件夾),Spring參考文檔(reference文件夾)以及Spring框架標簽庫文檔(taglib文件夾)。lib。包含所有Spring支持的第三方類庫。mock。包含Spring框架的測試類源碼。samples。包含Spring框架的應用實例。11.1下載Spring框架(2)src

。包含Spring框架的源碼。test。包含Spring框架的單元測試類源碼。tiger。包含JDK5.0新特性相關源代碼(src文件夾)以及使用JDK5.0新特性的單元測試類(test文件夾)。

返回11.2Spring框架作用及特點

Spring框架是一個輕巧的,易于開發(fā)、測試的輕量級框架,適用于開發(fā)大型的JavaEE應用。Spring框架的主要特點如下:輕量級:Spring無論是大小還是系統(tǒng)開銷都算是輕量級的,整個框架可以被壓縮在幾M的JAR包中,應用中處理Spring的開銷也微乎其微。方便解耦:Spring提倡通過控制反轉(zhuǎn)(IoC)技術實現(xiàn)松耦合。通過Spring中的IoC容器管理各個對象之間的依賴關系,能夠有效避免硬性編碼造成的耦合過于緊密的狀況。面向切面編程(AOP):Spring對面向切面編程提供了良好的支持,通過Spring提供的AOP功能,可以輕松實現(xiàn)業(yè)務邏輯與系統(tǒng)服務(例如日志、事務等)的分離。這樣一來,使得開發(fā)人員能夠更加專注于業(yè)務邏輯實現(xiàn)。方便集成其他框架:Spring框架允許集成其他多種框架共同進行開發(fā)設計,比如Hibernate、Struts、Struts2,iBATIS等框架。返回11.3Spring框架核心架構(1) Spring框架主要由7個模塊組成,這些模塊實現(xiàn)功能不同,實際應用中可以根據(jù)開發(fā)需要選擇合適的模塊。其架構圖如下

11.3Spring框架核心架構(2)各模塊功能如下:核心模塊(Core):該模塊是整個框架的最基本組成部分,它提供了依賴注入的功能及對Bean容器的管理功能。通過依賴注入,使得類與類之間不再由硬性編碼方式發(fā)生關系,而是通過配置實現(xiàn)這一過程,降低了各個類之間耦合的緊密度。Spring框架提供的BeanFactory接口,進一步消除了應用對工廠的依賴。AOP模塊(AOP):該模塊提供了對AOP的支持,允許我們以面向切面的方式開發(fā)程序。同時Spring框架提供了AspectJ的整合。上下文模塊(Context):該模塊構建于核心模塊之上,提供了對Bean的框架式訪問。該模塊還擴展了BeanFactory功能。DAO模塊(DAO):該模塊對JDBC進行輕量封裝,用以提供對JDBC操作的支持。使用傳統(tǒng)的SQL語句執(zhí)行JDBC操作,復雜且極容易發(fā)生錯誤。Spring通過對JDBC的輕量封裝,使得操作變得更加簡單化。同時Spring提供了聲明式的事務管理,使開發(fā)者不必在煩瑣的事務方面花費過多的精力。11.3Spring框架核心架構(3)ORM模塊(ORM):該模塊允許Spring集成各種ORM(Object-RelationMapping)框架來實現(xiàn)持久層的應用。各種ORM框架以插件的形式集成到Spring框架中,并由Spring框架來完成事務管理及異常處理。Web模塊(Web):該模塊也是構建于核心模塊之上的,它提供了對Web各種應用的全面支持。Spring的MVC模塊(MVC):該模塊提供了一個完整的MVC(Model-View-Controller)的解決方案,使用Spring框架的MVC模塊進行開發(fā),能夠更好地結(jié)合IoC容器。 實際應用中,并不是所有模塊都會被用到,可根據(jù)實際需要選擇適當?shù)哪K進行使用。返回11.4Spring應用環(huán)境搭建(1) 創(chuàng)建一個使用Spring框架的JavaEEWeb應用環(huán)境的具體實現(xiàn)步驟如下1.創(chuàng)建Web工程。2.在工程中引入Spring所需jar包。3.在工程的web.xml文件中添加Spring監(jiān)聽,添加內(nèi)容如下

<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class></listener>4.添加并配置Spring的核心配置文件applicationContext.xml

11.4Spring應用環(huán)境搭建(2)最終的工程結(jié)構如右圖所示

此時已經(jīng)搭建好了Spring框架的運行環(huán)境。在此基礎上,我們就可以開始具體代碼的編寫工作了。返回11.5Bean的裝配

Spring中所有的組件都以Bean的形式存在。要想使用容器管理Bean,必須在配置文件中規(guī)定好各個Bean的屬性及依賴關系?;九渲梅绞教砑訉傩院喕渲梅祷?1.5.1Bean的裝配—基本配置方式在配置文件中裝配一個Bean的最基本格式如下<?xmlversion="1.0"encoding="GBK"?><beansxmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd">

<beanid="user"class="sunyang.Spring.User"/></beans> 所有bean都是配置在<beans>標簽中的,通過<bean>標簽來聲明一個bean,其中id指定了bean的名稱,class指定了bean對應的類路徑。返回11.5.2Bean的裝配—添加屬性(1) 通過<property>元素為Bean組件添加屬性,該屬性可以是一個變量、一個集合或者對其他Bean的一個引用。

為bean添加一個變量屬性。示例如下

<beanid="user"class="sunyang.Spring.User"> <propertyname="name"> <value>SunYang</value> </property> </bean>這里添加的變量名稱為name,變量值為SunYan。11.5.2Bean的裝配—添加屬性(2)為Bean添加List類型屬性和Set類型屬性的格式相同。以添加List類型屬性為例,示例如下

<beanid="user"class="sunyang.Spring.User"> <propertyname="name"> <list> <value>SunYang</value> <value>Spring</value> <value>IoC</value> </list> </property> </bean>

這里為bean添加了一個list類型的屬性“name”,值為“SunYang”,“Spring”和“IoC”。11.5.2Bean的裝配—添加屬性(3)為Bean添加Map類型屬性,示例如下

<beanid="user"class="sunyang.Spring.User"> <propertyname="name"> <map> <entry> <key><value>name</value></key> <value>John</value> </entry> <entry> <key><value>password</value></key> <value>1234</value> </entry> </map> </property> </bean>為Bean添加Map類型屬性時,必須同時聲明key和value。11.5.2Bean的裝配—添加屬性(4)引用其他Bean。示例如下

<beanid="man"class="sunyang.Spring.Man"/> <beanid="user"class="sunyang.Spring.User"> <propertyname="man"> <refbean="man"/> </property> </bean>這里在user對應的Bean中引用了man對應的Bean。返回11.5.3Bean的裝配—簡化配置(1)為bean添加一個變量屬性的簡化配置為

<beanid="user"class="sunyang.Spring.User"> <propertyname="name"value="Sunyang"/> </bean>為Bean添加Map類型屬性的簡化配置為

<beanid="user"class="sunyang.Spring.User"> <propertyname="name"> <map> <entrykey="name"value=“John"/> <entrykey=“passowrd"value=“1234"/> </map> </property> </bean>11.5.3Bean的裝配—簡化配置(2)引用其他Bean的簡化配置如下

<beanid="man"class="sunyang.Spring.Man"/> <beanid="user"class="sunyang.Spring.User"> <propertyname="man"ref="man"/> </bean>返回11.6IoC Spring框架是一個輕量級框架,通過IoC容器統(tǒng)一管理各組件之間的依賴關系,以此來降低組件之間耦合的緊密程度。概念實現(xiàn)方式返回11.6.1IoC—概念

IoC(InverseofControl)通常被稱為控制反轉(zhuǎn)。它是一種設計模式,主要關注組件的依賴性、配置及組件的生命周期。特點:

讓容器去全權負責依賴查詢,受管對象只需暴露JavaBean的Setter方法或者帶參數(shù)的構造方法,使容器可以在初始化時組裝對象的依賴關系。查找定位操作與應用代碼完全無關。不依賴容器的API不需要特殊的接口返回11.6.2IoC—實現(xiàn)方式(1)

IoC一個更直觀的名稱就是依賴注入(DependencyInjection,DI),意思就是由框架或容器將被調(diào)用類注入給調(diào)用對象,以此來解除調(diào)用對象和被調(diào)用類之間的依賴關系。它的實現(xiàn)方式有3種:構造函數(shù)注入。構造函數(shù)注入方式是通過調(diào)用類的構造函數(shù),并將被調(diào)用類當做參數(shù)傳遞給構造函數(shù),以此來實現(xiàn)注入。例如將對象B注入到類A中,示例如下publicclassA{privateBb;publicA(Bb){

this.b=b;}}11.6.2IoC—實現(xiàn)方式(2) 在applicationContext.xml中添加bean配置如下 <beanid=“b"class=“com.B"/> <beanid=“a"class=“com.A"> <propertyname=“b"ref=“b"/> </bean>設置方法注入。通過添加并使用被調(diào)用類的setter方法來完成注入過程。示例如下publicclassA{privateBb;publicvoidsetB(Bb){

this.b=b;}}在applicationContext.xml中添加bean配置與構造函數(shù)注入相同。11.6.2IoC—實現(xiàn)方式(3)接口注入。接口注入方式將被調(diào)用類所有需要注入的方法封裝到接口中,被調(diào)用類實現(xiàn)該接口中定義的方法,以此來實現(xiàn)注入。在實際應用中這種注入方式很少被用到,因為其實現(xiàn)機制與設值方法注入方式相似,但卻需要多定義一個類來封裝需要注入的方法。在一個大型應用中,使用接口注入方式會帶來很多額外的開銷,因此這種注入方式不被推薦。返回11.7BeanFactory與 ApplicationContext(1) 在Spring框架中,對IoC容器的訪問則是通過BeanFactory和ApplicationContext這兩個接口實現(xiàn)的。BeanFactory

對應于com.springframework.beans.factory.Beanfactory,提供了IoC的相關配置機制。BeanFactory對Bean組件的常見操作主要包括如下幾個部分創(chuàng)建Bean。BeanFactory不僅可以產(chǎn)生對象還能夠管理對象,BeanFactory生成對象的方式主要有3種:構造函數(shù)創(chuàng)建方式、靜態(tài)工廠創(chuàng)建方式和非靜態(tài)工廠創(chuàng)建方式。11.7BeanFactory與 ApplicationContext(2)初始化JavaBean。容器根據(jù)XML配置文件中Bean組件的配置,實例化Bean對象,并將目標JavaBean注入到指定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論