![Java-EE輕量級(jí)框架應(yīng)用開(kāi)發(fā)第9章-Spring的基礎(chǔ)知識(shí)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/78a513e0-5236-433c-a375-24b2da242f15/78a513e0-5236-433c-a375-24b2da242f151.gif)
![Java-EE輕量級(jí)框架應(yīng)用開(kāi)發(fā)第9章-Spring的基礎(chǔ)知識(shí)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/78a513e0-5236-433c-a375-24b2da242f15/78a513e0-5236-433c-a375-24b2da242f152.gif)
![Java-EE輕量級(jí)框架應(yīng)用開(kāi)發(fā)第9章-Spring的基礎(chǔ)知識(shí)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/78a513e0-5236-433c-a375-24b2da242f15/78a513e0-5236-433c-a375-24b2da242f153.gif)
![Java-EE輕量級(jí)框架應(yīng)用開(kāi)發(fā)第9章-Spring的基礎(chǔ)知識(shí)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/78a513e0-5236-433c-a375-24b2da242f15/78a513e0-5236-433c-a375-24b2da242f154.gif)
![Java-EE輕量級(jí)框架應(yīng)用開(kāi)發(fā)第9章-Spring的基礎(chǔ)知識(shí)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/78a513e0-5236-433c-a375-24b2da242f15/78a513e0-5236-433c-a375-24b2da242f155.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java-EE輕量級(jí)框架應(yīng)用開(kāi)發(fā)第9章-Spring的根底知識(shí)本章要點(diǎn)v Spring簡(jiǎn)介簡(jiǎn)介v Spring 框架的系統(tǒng)架構(gòu)框架的系統(tǒng)架構(gòu)v Spring 框架的主要技術(shù)特性框架的主要技術(shù)特性vSpring開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境Spring簡(jiǎn)介vSpring是時(shí)下最流行、最完善的Web應(yīng)用開(kāi)源框架,為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性,由Rod Johnson創(chuàng)立vSpring使用JavaBean完成以前只可能由EJB完成的事情,不僅可以完成效勞器端的開(kāi)發(fā),從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益vSpring框架的功能可以用在任何J2EE效勞器中,它的核心要點(diǎn)是支
2、持不綁定到特定J2EE效勞的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象,因此,可以在不同J2EE環(huán)境 Web 或 EJB、獨(dú)立應(yīng)用程序、測(cè)試環(huán)境之間重用Spring的根本概念vSpring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)IoC和面向切面AOP的容器框架,在Spring框架下能夠?qū)崿F(xiàn)多個(gè)子框架的組合,這些子框架之間彼此獨(dú)立,也可以使用其它框架替代,為J2EE應(yīng)用程序開(kāi)發(fā)提供集成框架vSpring是一種無(wú)侵入式的高擴(kuò)展框架,代碼中不需要涉及Spring的特定類(lèi),即可將其納入Spring容器進(jìn)行管理,其核心是提供一種新的機(jī)制來(lái)管理業(yè)務(wù)對(duì)象及其依賴(lài)關(guān)系Spring的特點(diǎn)vSpring作為實(shí)現(xiàn)J2EE的一個(gè)全方位應(yīng)用程序框架,為開(kāi)
3、發(fā)企業(yè)級(jí)應(yīng)用提供了一個(gè)健壯、高效的解決方案v輕量級(jí)v從大小與開(kāi)銷(xiāo)兩方面而言Spring都是輕量的,完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布,并且Spring所需的處理開(kāi)銷(xiāo)也是微缺乏道的v控制反轉(zhuǎn)vSpring通過(guò)IoC促進(jìn)了松耦合,容器在對(duì)象初始化時(shí)主動(dòng)將依賴(lài)傳遞給它,由容器控制程序之間的關(guān)系,而非傳統(tǒng)實(shí)現(xiàn)中,由程序代碼直接操縱,即控制權(quán)由應(yīng)用代碼轉(zhuǎn)到了外部容器v 面向切面編程v 將業(yè)務(wù)邏輯從系統(tǒng)效勞中別離,實(shí)現(xiàn)內(nèi)聚開(kāi)發(fā),系統(tǒng)對(duì)象只完成該做的業(yè)務(wù)邏輯,而不負(fù)責(zé)其他系統(tǒng)問(wèn)題,如日志、平安、事務(wù)等效勞v 依賴(lài)注入v 在運(yùn)行期,由外部容器動(dòng)態(tài)地將依賴(lài)對(duì)象注入到組件中,對(duì)象與
4、對(duì)象之間依賴(lài)關(guān)系的實(shí)現(xiàn),包括接口注入、構(gòu)造注入、set方法注入,在Spring中只支持后兩種v 容器v Spring提供容器功能,管理系統(tǒng)對(duì)象的生命周期和配置,通過(guò)配置設(shè)定Bean來(lái)管理Bean之間的關(guān)聯(lián)關(guān)系v 框架v 通過(guò)XML文件將簡(jiǎn)單組件配置合成一個(gè)復(fù)雜的系統(tǒng),同時(shí)也提供了很多根底功能,如事務(wù)管理、持久化框架集成等,可用于應(yīng)用邏輯的開(kāi)發(fā)Spring的開(kāi)展歷史v Spring框架最開(kāi)始的局部是由Rod Johnson于2000年為倫敦的金融界提供獨(dú)立咨詢(xún)業(yè)務(wù)時(shí)寫(xiě)出來(lái)的v 2003年2月Spring框架正式成為一個(gè)開(kāi)源工程,并發(fā)布于SourceForge中v 2004年3月,Spring發(fā)布
5、了第一個(gè)版本(1.0),這個(gè)版本之后,Spring框架在Java社區(qū)里變得異常流行v 2005年,Spring框架的開(kāi)發(fā)人員成立了自己的公司,來(lái)提供對(duì)Spring的商業(yè)支持,其中最顯著的就是與BEA的合作v 2005年12月,第一個(gè)Spring會(huì)議在邁阿密舉行,3天的課程吸引了300名開(kāi)發(fā)人員v 2006年6月在安特衛(wèi)普召開(kāi)的會(huì)議有400多名開(kāi)發(fā)人員Spring的主要功能v 基于JavaBean的配置管理,采用IoC的原理,特別是對(duì)依賴(lài)注入技術(shù)的使用v 一個(gè)核心的,全局適用的bean工廠v 一個(gè)一般抽象化的層面來(lái)管理數(shù)據(jù)庫(kù)間的數(shù)據(jù)處理v 建立在框架內(nèi)的,對(duì)Java數(shù)據(jù)處理API和單獨(dú)的JDBC
6、數(shù)據(jù)源的一般性策略v 一些可持續(xù)性的框架,如Hibernate,JDO,iBATIS的整合v web應(yīng)用中的MVC框架,基于核心的Spring功能,支持多種產(chǎn)生視圖的技術(shù),包括JSP,F(xiàn)reeMarker,Velocity,Tiles,iText,和POIv 大量的AOP框架以提供諸如數(shù)據(jù)處理管理的效勞Spring的組成vSpring的jar包 到下載spring,然后進(jìn)行解壓縮,在解壓目錄中找到對(duì)應(yīng)的jar文件,拷貝到類(lèi)路徑lib下vSpring配置文件 默認(rèn)情況下是applicationContext.xml文件,可以建立很多xml文件vSpring API Spring提供構(gòu)建應(yīng)用的所有
7、層的工具,可以使用API通過(guò)工具訪問(wèn)數(shù)據(jù)v Spring簡(jiǎn)介簡(jiǎn)介v Spring 框架的系統(tǒng)架構(gòu)框架的系統(tǒng)架構(gòu)v Spring 框架的主要技術(shù)特性框架的主要技術(shù)特性vSpring開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境Spring 框架的系統(tǒng)架構(gòu)vSpring框架不斷地在開(kāi)展和完善,但根本與核心的局部已經(jīng)穩(wěn)定,它是一個(gè)分層架構(gòu),由7個(gè)定義良好的模塊組成vSpring 模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)立、配置和管理bean的方式vSpring框架的每個(gè)模塊或組件都可以單獨(dú)存在,或者與其他一個(gè)或多個(gè)模塊聯(lián)合實(shí)現(xiàn)vSpring CorevSpring框架最根底的局部,提供Spring框架的根本功能,它提供了依賴(lài)注入
8、Dependency Injection特征來(lái)實(shí)現(xiàn)容器對(duì)Bean的管理v主要組件是BeanFactory,它是工廠模式的實(shí)現(xiàn),使用IoC將應(yīng)用程序的配置和依賴(lài)性標(biāo)準(zhǔn)與實(shí)際的應(yīng)用程序代碼分開(kāi)vSpring ContextvSpring上下文使其成為一個(gè)框架,它是一個(gè)配置文件,向Spring框架提供上下文信息,包括企業(yè)效勞,例如 JNDI、EJB、電子郵件、國(guó)際化、校驗(yàn)和調(diào)度功能vSpring AOPv通過(guò)配置管理特性,Spring AOP模塊直接將面向切面的編程功能集成到了Spring框架中,所以,可以很容易地使 Spring 框架管理的任何對(duì)象支持AOPv為基于Spring的應(yīng)用程序中的對(duì)象提
9、供了事務(wù)管理效勞,通過(guò)使用Spring AOP,不用依賴(lài)EJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中v將元數(shù)據(jù)編程中引入Spring,使用Spring的元數(shù)據(jù)支持,可以為源代碼增加注釋?zhuān)甘維pring在何處以及如何應(yīng)用切面函數(shù)vSpring DAOv使用JDBC經(jīng)常導(dǎo)致大量的重復(fù)代碼,取得連接、創(chuàng)立語(yǔ)句、處理結(jié)果集,然后關(guān)閉連接。Spring的JDBC和DAO模塊抽取了這些重復(fù)代碼,因此可以保持?jǐn)?shù)據(jù)庫(kù)訪問(wèn)代碼干凈簡(jiǎn)潔,并且可以防止因關(guān)閉數(shù)據(jù)庫(kù)資源失敗而引起的問(wèn)題vJDBC DAO抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來(lái)管理異常處理和不同數(shù)據(jù)庫(kù)供給商拋出的錯(cuò)誤消息,面向JDBC的異
10、常遵從通用的 DAO 異常層次結(jié)構(gòu)vSpring ORMv對(duì)象/關(guān)系映射集成模塊,Spring 框架插入了假設(shè)干個(gè) ORM 框架,從而提供了 ORM 的對(duì)象關(guān)系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map,所有這些都遵從Spring的通用事務(wù)和DAO異常層次結(jié)構(gòu)vSpring Web模塊vWeb上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于 Web的應(yīng)用程序提供了上下文v提供了一些面向效勞支持,例如,實(shí)現(xiàn)文件上傳的multipart請(qǐng)求,也提供了Spring和其它Web框架的集成,比方Struts、WebWorkv簡(jiǎn)化了處理多局部請(qǐng)求以及將請(qǐng)求參數(shù)綁定到域?qū)ο蟮?/p>
11、工作vSpring MVC框架vSpring為構(gòu)建Web應(yīng)用提供了一個(gè)功能全面的MVC框架,通過(guò)策略接口,MVC框架成為高度可配置的,容納了大量視圖技術(shù),其中包括JSP、Velocity、Tiles、iText和POIv雖然Spring可以很容易地與其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC對(duì)控制邏輯和業(yè)務(wù)對(duì)象提供了完全的別離v Spring簡(jiǎn)介簡(jiǎn)介v Spring 框架的系統(tǒng)架構(gòu)框架的系統(tǒng)架構(gòu)v Spring 框架的主要技術(shù)特性框架的主要技術(shù)特性vSpring開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境Spring 框架的主要技術(shù)特性v采用分層架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)vSpring框架有7個(gè)各自相
12、互獨(dú)立的模塊,整個(gè)Spring框架本身是一個(gè)完整的企業(yè)級(jí)開(kāi)發(fā),開(kāi)發(fā)者也可以?xún)H使用其中的任何一個(gè)獨(dú)立的組件vSpring框架適用于包括J2SE和J2EE的各種不同的應(yīng)用開(kāi)發(fā)環(huán)境,為開(kāi)發(fā)者提供了極其靈活的開(kāi)發(fā)實(shí)現(xiàn),比方可以采用容器外的開(kāi)發(fā)和實(shí)現(xiàn),包括單元測(cè)試技術(shù)來(lái)簡(jiǎn)化容器內(nèi)的工程的開(kāi)發(fā)過(guò)程,提高應(yīng)用系統(tǒng)的開(kāi)發(fā)效率v輕量級(jí)的J2EE應(yīng)用開(kāi)發(fā)框架v重量級(jí)容器的組件技術(shù)中,組件必須實(shí)現(xiàn)某個(gè)特定的接口并且在某個(gè)特定的容器內(nèi)執(zhí)行,EJB是重量級(jí)容器組件技術(shù)的典型代表v而輕量級(jí)容器的組件技術(shù)中的組件可以是簡(jiǎn)單的Java組件類(lèi)Plain Ordinary Java Object,POJO,并且不依賴(lài)于特定的J2
13、EE應(yīng)用效勞器容器的產(chǎn)品vSpring框架使用根本的JavaBean組件類(lèi),所開(kāi)發(fā)的組件不需要其它的外部系統(tǒng)庫(kù),目標(biāo)容器可以使輕量級(jí)的,可以部署在像Tomcat等類(lèi)型的容器中v一種非侵入式的輕量級(jí)框架vSpring框架,允許在應(yīng)用系統(tǒng)中自由選擇和組裝功能模塊,并且不強(qiáng)制要求應(yīng)用中的類(lèi)必須從Spring的系統(tǒng)API中的某個(gè)類(lèi)來(lái)繼承或者實(shí)現(xiàn)某個(gè)接口v提供和其它框架集成的接口,如與Hibernate、Struts的集成等vSpring通過(guò)應(yīng)用Java的反射機(jī)制,通過(guò)動(dòng)態(tài)調(diào)用的方式來(lái)提供各方面的功能,建立核心組間BeanFactory,并配合使用Spring框架中的BeanWrapper和BeanFa
14、ctory類(lèi)組件,實(shí)現(xiàn)對(duì)象的創(chuàng)立和屬性注入v使用控制反轉(zhuǎn)IoC技術(shù)的容器v依賴(lài)查找Dependency Lookup,容器提供回調(diào)接口和上下文環(huán)境給組件。EJB和Apache Avalon都使用這種方式v依賴(lài)注入Dependency Injection,組件不做定位查詢(xún),只提供普通的Java方法讓容器決定依賴(lài)關(guān)系,這是目前最流行的IoC類(lèi)型v查找定位操作與應(yīng)用代碼完全無(wú)關(guān)v不依賴(lài)于容器的API,可以很容易地在任何容器以外使用應(yīng)用對(duì)象v不需要特殊的接口,絕大多數(shù)對(duì)象可以做到完全不必依賴(lài)容器v Spring簡(jiǎn)介簡(jiǎn)介v Spring 框架的系統(tǒng)架構(gòu)框架的系統(tǒng)架構(gòu)v Spring 框架的主要技術(shù)特性框
15、架的主要技術(shù)特性vSpring開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境Spring開(kāi)發(fā)環(huán)境vSpring的開(kāi)發(fā)需要編寫(xiě)xml配置文件組織Bean和切面等,通過(guò)配置的方式,可以將程序的各個(gè)局部連接起來(lái)v程序運(yùn)行時(shí)能夠創(chuàng)立或者初始化所有的對(duì)象關(guān)系,因此,程序間的切換,可以只需要修改注釋或xml配置文件,然后運(yùn)行即可搭建Spring開(kāi)發(fā)環(huán)境v在工程中使用Spring,需要添加Spring支持,添加的方式有兩種:通過(guò)Myclipse向?qū)Ш褪止ぬ砑觱創(chuàng)立Spring的運(yùn)行環(huán)境,具體的實(shí)現(xiàn)步驟包括創(chuàng)立Web工程,在工程的web.xml文件中添加Spring監(jiān)聽(tīng),在新工程中引入庫(kù)文件以及添加并配置Spring的核心庫(kù)文件appli
16、cationContext.xml使用Myclipse向?qū)砑覵pring支持v翻開(kāi)軟件MyEclipse,單擊FileNewWeb Projectv創(chuàng)立一個(gè)名為SpringDemo的工程v在工程的web.xml文件中添加Spring監(jiān)聽(tīng),配置web.xml文件,目的是工程啟動(dòng)時(shí)自動(dòng)創(chuàng)立bean工廠并讀取spring配置文件,反射對(duì)象注入屬性 v在包資源管理器中,右鍵單擊工程名,在彈出的快捷菜單中選擇MyEclipseAdd Spring Capabilities,翻開(kāi)添加Spring資源對(duì)話(huà)框v 在增加Spring資源對(duì)話(huà)框中,選擇Spring2.5v 勾選5個(gè)包,分別為Spring 2.5
17、 AOP Libraries、Spring 2.5 Core Libraries、Spring 2.5 Persistence Core Libraries、Spring 2.5 Persistence JDBC Libraries和Spring 2.5 Web Librariesv 勾選“Copy checked Libraries contents to project folder (TLDs always copies)v單擊Nextv完成Spring文件的添加后,向?qū)г趕rc目錄中新建了Spring的配置文件applicationContext.xmlbeans手工方式添加Sprin
18、g支持v將相應(yīng)的jar包spring.jar、slf4j log4j支持包、等添加到工程的WebRoot/WEB-INF/lib目錄下v在工程文件的src目錄下創(chuàng)立Spring的配置文件applicationContext.xml編寫(xiě)HelloWorld類(lèi)v在工程SpringDemo中,新建HelloWorld類(lèi),包名為com.SpringDemopackage com.SpringDemo;public class HelloWorld public void show()歡送Spring!); 配置applicationContext.xml文件v在文件applicationContext.xml中,添加一個(gè)節(jié)點(diǎn)vclass的屬性由“包名+類(lèi)名的方式組成,而id那么作為標(biāo)識(shí)符,其中,id號(hào)是Bean的名稱(chēng),而class是Bean對(duì)應(yīng)的類(lèi),通過(guò)這個(gè)id可以映射到HelloWorld編寫(xiě)測(cè)試類(lèi)v在com.SpringDemo包中,創(chuàng)立名為T(mén)estHelloWorld的測(cè)試類(lèi)package com.SpringDemo;public class TestHelloWorld pub
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)買(mǎi)賣(mài)合同
- 車(chē)輛駕駛承包合同范本
- 外貿(mào)代理合同仲裁條款
- 正規(guī)個(gè)人借款合同范本
- 無(wú)償借用車(chē)間合同范本
- 綠化綠植買(mǎi)賣(mài)合同范本
- 2025合法的工程合同樣式
- 專(zhuān)利申請(qǐng)委托合同書(shū)樣本
- 項(xiàng)目咨詢(xún)服務(wù)合同范本
- 貨物運(yùn)輸公司的勞務(wù)合同
- 保安服務(wù)項(xiàng)目信息反饋溝通機(jī)制
- 全國(guó)各省(直轄市、自治區(qū))市(自治州、地區(qū))縣(縣級(jí)市)區(qū)名稱(chēng)一覽表
- 《團(tuán)隊(duì)介紹模板》課件
- 常用中醫(yī)適宜技術(shù)目錄
- 沖壓模具價(jià)格估算方法
- 碳納米管應(yīng)用研究
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第十一章運(yùn)動(dòng)技能的練習(xí)
- 蟲(chóng)洞書(shū)簡(jiǎn)全套8本
- 2023年《反電信網(wǎng)絡(luò)詐騙法》專(zhuān)題普法宣傳
- 小學(xué)數(shù)學(xué)五年級(jí)上、下冊(cè)口算題大全
- 和平精英電競(jìng)賽事
評(píng)論
0/150
提交評(píng)論