Java-Web開發(fā)基礎第11章課件_第1頁
Java-Web開發(fā)基礎第11章課件_第2頁
Java-Web開發(fā)基礎第11章課件_第3頁
Java-Web開發(fā)基礎第11章課件_第4頁
Java-Web開發(fā)基礎第11章課件_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第11章 Spring應用點擊添加文本點擊添加文本點擊添加文本點擊添加文本目錄010202Spring入門技術Spring框架簡介0203控制反轉與依賴注入04案例-利用Spring框架實現(xiàn)用戶登錄點擊添加文本點擊添加文本點擊添加文本點擊添加文本添加文本理解并掌握控制反轉與依賴注入了解Spring3的下載與配置了解并掌握Spring框架的特點11.1 Spring框架簡介 Spring是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的一個開源框架。該框架是一個分層架構,分層架構的最大優(yōu)勢就是允許開發(fā)者選擇使用某一個組件,同時為J2EE應用程序的開發(fā)提供集成框架。11.1.1 Spring框架的特點 Spr

2、ing是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。1.輕量2.容器3.方便解耦,簡化開發(fā)4.AOP編程的支持5.優(yōu)秀的框架6.方便程序的測試 7.Java 源碼是經典學習范例 11.1.2 Spring框架的下載與安裝1.Spring框架的下載 Spring官方下載地址為:/download,從該站點可以下載Spring最新穩(wěn)定版本。2.對下載的壓縮包進行解壓縮這里一共包含四個子文件夾:dist、docs、projects和src。(1)dist:該文件夾下存放Spring框架的一些JAR文件,其中Spring的核心JAR包-org.springframework.core

3、-3.1.0.RELEASE.jar文件是必須的。(2)docs:該文件夾下包含Spring的相關文檔信息。(3)projects:該文件夾包含Spring提供的應用實例。(4)src:該文件夾下包含Spring的全部源文件,在項目開發(fā)過程中可以作為參考資料,了解其底層的實現(xiàn)。3.Spring的配置11.2 Spring入門技術 在基于Java企業(yè)平臺上的Web應用中,通過Spring框架使大量的拓展和改進得以實現(xiàn)。為此,Spring并被許多公司公認為具有戰(zhàn)略意義的重要框架。11.2.1 Spring的體系結構1.核心容器 Core Container是由Core和Beans、Context、

4、Expression Language模塊組成。核心容器提供 Spring 框架的基本功能。涉及到的包包括:spring-core;spring-beans;spring-context;springcontext-support以及spring-expression。2.數(shù)據的訪問/集成 數(shù)據的訪問/集成主要包括JDBC、ORM、OXM、JMS和Transactions(事務)模塊。涉及到的包包括:spring-jdbc;spring-tx;spring-orm以及spring-jms。3.Web Web層由Web、Servlet、Portlet和Struts模塊組成。涉及到的包包括:spr

5、ing-web;spring-webmvc以及spring-webmvc-portlet。4.面向方面編程和架構 該模塊在Spring應用中是實現(xiàn)面向方面編程的基礎,Spring在它的AOP模塊中提供了對面向方面編程的豐富支持。通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持 AOP。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中。涉及到的包包括:spring-aop;spring-aspects;spring-instrument以及sp

6、ring-instrument-tomcat。5.測試 測試模塊支持測試Spring的組件,通過使用Junit和TestNGK提供了同步裝載SpringApplicationContexts和緩沖這些上下文環(huán)境。該模塊也提供了Mock對象,這些對象可以相互獨立測試代碼。涉及到的包是spring-test。11.2.2 單例模式簡介 Java模式包括很多,其中Spring實現(xiàn)了兩種基本設計模式:工廠模式和單例模式。單例模式是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱為單例類的特殊類。通過單例模式可以保證系統(tǒng)中一個類只有一個實例而且該實例易于外界訪問,從而方便對實例個數(shù)的控制并節(jié)約系統(tǒng)

7、資源。如果希望在系統(tǒng)中某個類的對象只能存在一個,單例模式是最好的解決方案。11.2.3 工廠模式簡介 在工廠模式中個,包含三個角色,這些角色及工廠模式的結構如圖11-10所示。11.3 控制反轉與依賴注入 依賴注入(Dependency Injection ,DI)可以稱之為控制反轉(Inversion of Control,IoC),負責管理Web應用程序中的Spring受管Bean,比如生命周期管理、事件分發(fā)、資源查找等。但是IoC不等于就是DI,也就是說,IoC包括了DI,但同時也包括了另一個稱為依賴查找(Dependency Lookup,DL)的功能。11.3.1 控制反轉 IoC實

8、際上是一個很大的概念,可以用不同的方式來實現(xiàn)。其主要實現(xiàn)方式有以下兩種:1.依賴查找(Dependency Lookup):容器提供回調接口和上 下文環(huán)境給組件。 2.依賴注入(Dependency Injection):組件不做定位查詢, 只提供普通的Java方法讓容器去決定依賴關系。11.3.2 依賴注入 依賴注入的基本原則是:“查找資源”的邏輯從應用組件的代碼中抽取出來,交給IoC容器負責,應用組件不負責查找資源或者其他依賴的協(xié)作對象。類似于EJB容器管理EJB組件一樣,Spring DI容器負責管理Bean。1.面向Java ME/Java SE的BeanFactory BeanFac

9、tory內置了最基礎的DI功能,比如配置框架、基礎功能。一般在內存、CPU資源受限的場合使用,比如Applet、手持設備等。開發(fā)者經常會使用到Spring內置的XmlBeanFactory實現(xiàn),其格式為:XmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource(Spring.xml);2.面向Java EE的ApplicationContext Context包的基礎位于org.springframework.context包中的ApplicationContext接口。它是由BeanFactory接口集成而來,提供B

10、eanFactory所有的功能。為了以一種更向面向框架的方式工作,Context包使用分層和有繼承關系的上下文類。3. BeanFactory和ApplicationContext的區(qū)別(1)因為ApplicationContext包括了BeanFactory所有的功能,所以通常建議先于BeanFactory使用,除了有限的一些場合比如在一個Applet中,內存的消耗是關鍵的,每kb字節(jié)都很重要。(2)BeanFactory當需要調用時讀取配置信息,生成某個類的實例。如果讀入的Bean配置正確,則其他的配置中有錯誤也不會影響程序的運行。而ApplicationContext 在初始化時就把XML的配置信息讀入內存,對 XML 文件進行檢驗,如果配置文件沒有錯誤,就創(chuàng)建所有的Bean ,直接為應用程序服務。(3)BeanFactroy采用的是延遲加載形式來注入Bean的,即只有在使用到某個Bean時(調用getBean(),才對該Bean進行加載實例化,這樣,對發(fā)現(xiàn)某些有問題的Spring配置是很困難的。而ApplicationContext則相反,它是在容器啟動時,一次性創(chuàng)建了

溫馨提示

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

評論

0/150

提交評論