Java EE輕量級(jí)框架應(yīng)用開發(fā)第9章 Spring的基礎(chǔ)相關(guān)知識(shí)_第1頁
Java EE輕量級(jí)框架應(yīng)用開發(fā)第9章 Spring的基礎(chǔ)相關(guān)知識(shí)_第2頁
Java EE輕量級(jí)框架應(yīng)用開發(fā)第9章 Spring的基礎(chǔ)相關(guān)知識(shí)_第3頁
Java EE輕量級(jí)框架應(yīng)用開發(fā)第9章 Spring的基礎(chǔ)相關(guān)知識(shí)_第4頁
Java EE輕量級(jí)框架應(yīng)用開發(fā)第9章 Spring的基礎(chǔ)相關(guān)知識(shí)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第九章Spring的基礎(chǔ)知識(shí)本章要點(diǎn)Spring簡介Spring框架的系統(tǒng)架構(gòu)Spring框架的主要技術(shù)特性·Spring開發(fā)環(huán)境Spring簡介Spring是時(shí)下最流行、最完善的Web應(yīng)用開源框架,為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性,由Rod

Johnson創(chuàng)建Spring使用JavaBean完成以前只可能由EJB完成的事情,不僅可以完成服務(wù)器端的開發(fā),從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益Spring框架的功能可以用在任何J2EE服務(wù)器中,它的核心要點(diǎn)是支持不綁定到特定J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問對象,因此,可以在不同J2EE環(huán)境(Web或EJB)、獨(dú)立應(yīng)用程序、測試環(huán)境之間重用Spring的基本概念Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面AOP的容器框架,在Spring框架下能夠?qū)崿F(xiàn)多

個(gè)子框架的組合,這些子框架之間彼此獨(dú)立,也可以使用其它框架替代,為J2EE應(yīng)用程序開發(fā)提供集成框架Spring是一種無侵入式的高擴(kuò)展框架,代碼中不需要涉及Spring的特定類,即可將其納入Spring容器進(jìn)行管理,其核心是提供一種新的機(jī)制來管理業(yè)務(wù)對象及其依賴關(guān)系Spring的特點(diǎn)Spring作為實(shí)現(xiàn)J2EE的一個(gè)全方位應(yīng)用程序框架,為開發(fā)企業(yè)級(jí)應(yīng)用提供了一個(gè)健壯、高效的解決方案輕量級(jí)

從大小與開銷兩方面而言Spring都是輕量的,完整的

Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布,并且Spring所需的處理開銷也是微不足道的控制反轉(zhuǎn)

Spring通過IoC促進(jìn)了松耦合,容器在對象初始化時(shí)主動(dòng)將依賴傳遞給它,由容器控制程序之間的關(guān)系,而非傳統(tǒng)實(shí)現(xiàn)中,由程序代碼直接操縱,即控制權(quán)由應(yīng)用代碼轉(zhuǎn)到了外部容器Spring的主要功能

基于JavaBean的配置管理,采用IoC的原理,特別是對依賴注入技術(shù)的使用一個(gè)核心的,全局適用的bean工廠一個(gè)一般抽象化的層面來管理數(shù)據(jù)庫間的數(shù)據(jù)處理

建立在框架內(nèi)的,對Java數(shù)據(jù)處理API和單獨(dú)的JDBC數(shù)據(jù)源的一般性策略一些可持續(xù)性的框架,如Hibernate,JDO,iBATIS的整合

web應(yīng)用中的MVC框架,基于核心的Spring功能,支持多種產(chǎn)生視圖的技術(shù),包括JSP,F(xiàn)reeMarker,Velocity,Tiles,iText,和POI大量的AOP框架以提供諸如數(shù)據(jù)處理管理的服務(wù)Spring的組成Spring的jar包到/download下載spring,然后進(jìn)行解壓縮,在解壓目錄中找到對應(yīng)的jar文件,拷貝到類路徑lib下Spring配置文件默認(rèn)情況下是applicationContext.xml文件,可以建立很多xml文件Spring

APISpring提供構(gòu)建應(yīng)用的所有層的工具,可以使用API通過工具訪問數(shù)據(jù)Spring簡介Spring框架的系統(tǒng)架構(gòu)Spring框架的主要技術(shù)特性·Spring開發(fā)環(huán)境Spring框架的系統(tǒng)架構(gòu)Spring框架不斷地在發(fā)展和完善,但基本與核心的部分已經(jīng)穩(wěn)定,它是一個(gè)分層架構(gòu),由7個(gè)定義良好的模塊組成Spring模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理bean的方式Spring框架的每個(gè)模塊(或組件)都可以單獨(dú)存在,或者與其他一個(gè)或多個(gè)模塊聯(lián)合實(shí)現(xiàn)·Spring

CoreSpring框架最基礎(chǔ)的部分,提供Spring框架的基本功能,它提供了依賴注入(Dependency

Injection)特征來實(shí)現(xiàn)容器對Bean的管理主要組件是BeanFactory,它是工廠模式的實(shí)現(xiàn),使用

IoC將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開·Spring

Context·Spring上下文使其成為一個(gè)框架,它是一個(gè)配置文件,向Spring框架提供上下文信息,包括企業(yè)服務(wù),例如

JNDI、EJB、電子郵件、國際化、校驗(yàn)和調(diào)度功能·Spring

AOP通過配置管理特性,SpringAOP模塊直接將面向切面的編程功能集成到了Spring框架中,所以,可以很容易地使Spring框架管理的任何對象支持AOP為基于Spring的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù),通過使用Spring

AOP,不用依賴EJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中將元數(shù)據(jù)編程中引入Spring,使用Spring的元數(shù)據(jù)支持,可以為源代碼增加注釋,指示Spring在何處以及如何應(yīng)用切面函數(shù)·Spring

DAO使用JDBC經(jīng)常導(dǎo)致大量的重復(fù)代碼,取得連接、創(chuàng)建語句、處理結(jié)果集,然后關(guān)閉連接。Spring的JDBC和DAO模塊抽取了這些重復(fù)代碼,因此可以保持?jǐn)?shù)據(jù)庫

訪問代碼干凈簡潔,并且可以防止因關(guān)閉數(shù)據(jù)庫資源失敗而引起的問題JDBC

DAO抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)庫供應(yīng)商拋出的錯(cuò)誤消息,面向JDBC的異常遵從通用的DAO異常層次

結(jié)構(gòu)·Spring

ORM·

對象/關(guān)系映射集成模塊,Spring框架插入了若干個(gè)

ORM框架,從而提供了ORM的對象關(guān)系工具,其中包括JDO、Hibernate和iBatis

SQL

Map,所有這些都遵從Spring的通用事務(wù)和DAO異常層次結(jié)構(gòu)Spring

Web模塊Web上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于Web的應(yīng)用程序提供了上下文提供了一些面向服務(wù)支持,例如,實(shí)現(xiàn)文件上傳的

multipart請求,也提供了Spring和其它Web框架的集成,比如Struts、WebWork簡化了處理多部分請求以及將請求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌pring

MVC框架Spring為構(gòu)建Web應(yīng)用提供了一個(gè)功能全面的MVC框架,通過策略接口,MVC框架成為高度可配置的,容納了大量視圖技術(shù),其中包括JSP、Velocity、Tiles、iText和POI雖然Spring可以很容易地與其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC對控制邏輯和業(yè)務(wù)對象提供了完全的分離Spring簡介Spring框架的系統(tǒng)架構(gòu)Spring框架的主要技術(shù)特性·Spring開發(fā)環(huán)境Spring框架的主要技術(shù)特性采用分層架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)Spring框架有7個(gè)各自相互獨(dú)立的模塊,整個(gè)Spring框架本身是一個(gè)完整的企業(yè)級(jí)開發(fā),開發(fā)者也可以僅使用其中的任何一個(gè)獨(dú)立的組件Spring框架適用于包括J2SE和J2EE的各種不同的應(yīng)用開發(fā)環(huán)境,為開發(fā)者提供了極其靈活的開發(fā)實(shí)現(xiàn),比如

可以采用容器外的開發(fā)和實(shí)現(xiàn),包括單元測試技術(shù)來

簡化容器內(nèi)的項(xiàng)目的開發(fā)過程,提高應(yīng)用系統(tǒng)的開發(fā)

效率·輕量級(jí)的J2EE應(yīng)用開發(fā)框架重量級(jí)容器的組件技術(shù)中,組件必須實(shí)現(xiàn)某個(gè)特定的接口并且在某個(gè)特定的容器內(nèi)執(zhí)行,EJB是重量級(jí)容器組件技術(shù)的典型代表而輕量級(jí)容器的組件技術(shù)中的組件可以是簡單的Java組件類(Plain

Ordinary

Java

Object,POJO),并且不依賴于特定的J2EE應(yīng)用服務(wù)器容器的產(chǎn)品Spring框架使用基本的JavaBean組件類,所開發(fā)的組件不需要其它的外部系統(tǒng)庫,目標(biāo)容器可以使輕量級(jí)的,可以部署在像Tomcat等類型的容器中·一種非侵入式的輕量級(jí)框架Spring框架,允許在應(yīng)用系統(tǒng)中自由選擇和組裝功能模塊,并且不強(qiáng)制要求應(yīng)用中的類必須從Spring的系統(tǒng)

API中的某個(gè)類來繼承或者實(shí)現(xiàn)某個(gè)接口提供和其它框架集成的接口,如與Hibernate、Struts的集成等Spring通過應(yīng)用Java的反射機(jī)制,通過動(dòng)態(tài)調(diào)用的方式來提供各方面的功能,建立核心組間BeanFactory,并配合使用Spring框架中的BeanWrapper和BeanFactory類組件,實(shí)現(xiàn)對象的創(chuàng)建和屬性注入·使用控制反轉(zhuǎn)IoC技術(shù)的容器依賴查找(DependencyLookup),容器提供回調(diào)接口和上下文環(huán)境給組件。EJB和ApacheAvalon都使用這種方式依賴注入(Dependency

Injection),組件不做定位查詢,只提供普通的Java方法讓容器決定依賴關(guān)系,這是目前最流行的IoC類型查找定位操作與應(yīng)用代碼完全無關(guān)

不依賴于容器的API,可以很容易地在任何容器以外使用應(yīng)用對象

不需要特殊的接口,絕大多數(shù)對象可以做到完全不必依賴容器Spring簡介Spring框架的系統(tǒng)架構(gòu)Spring框架的主要技術(shù)特性·Spring開發(fā)環(huán)境Spring開發(fā)環(huán)境Spring的開發(fā)需要編寫xml配置文件組織Bean和切面等,通過配置的方式,可以將程序的各個(gè)部分連接起來程序運(yùn)行時(shí)能夠創(chuàng)建或者初始化所有的對象關(guān)系,因此,程序間的切換,可以只需要修改注釋或

xml配置文件,然后運(yùn)行即可搭建Spring開發(fā)環(huán)境在項(xiàng)目中使用Spring,需要添加Spring支持,添加的方式有兩種:通過Myclipse向?qū)Ш褪止ぬ砑觿?chuàng)建Spring的運(yùn)行環(huán)境,具體的實(shí)現(xiàn)步驟包括創(chuàng)建Web工程,在工程的web.xml文件中添加Spring監(jiān)聽,在新工程中引入庫文件以及添加并配置

Spring的核心庫文件applicationContext.xml使用Myclipse向?qū)砑覵pring支持·打開軟件MyEclipse,單擊File—New—WebProject·創(chuàng)建一個(gè)名為SpringDemo的項(xiàng)目·在工程的web.xml文件中添加Spring監(jiān)聽,配置

web.xml文件,目的是項(xiàng)目啟動(dòng)時(shí)自動(dòng)創(chuàng)建bean工廠并讀取spring配置文件,反射對象注入屬性<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>·在包資源管理器中,右鍵單擊項(xiàng)目名,在彈出的快捷菜單中選擇MyEclipse—Add

SpringCapabilities,打開添加Spring資源對話框·

在增加Spring資源對話框中,選擇Spring2.5

勾選5個(gè)包,分別為Spring

2.5

AOP

Libraries、Spring

2.5

CoreLibraries、Spring

2.5

Persistence

Core

Libraries、Spring

2.5Persistence

JDBC

Libraries和Spring

2.5

Web

Libraries

勾選“Copy

checked

Libraries

contents

to

project

folder(TLDsalways

copies)”·單擊Next·完成Spring文件的添加后,向?qū)г趕rc目錄中新建了Spring的配置文件applicationContext.xmlxmlns:xsi="htt<?xml

version="1.0"

encoding="UTF-8"?><beansxmlns="/schema/beans"p:///2001/XMLSchema-instance"

xmlns:p="/schema/p"xsi:schemaLocation="http:///schema/beans

/schema/beans/spring-beans-2.5.xsd"></beans>手工方式添加Spring支持將相應(yīng)的jar包spring.jar、spring-2.5.5.jar、slf4jlog4j12-1.5.0jar、slf4j

log4j支持包、log4j-1.2.15.jar、slf4j-api-1.5.0.jar等添加到項(xiàng)目的

WebRoot/WEB-INF/lib目錄下在項(xiàng)目文件的src目錄下創(chuàng)建Spring的配置文件

applicationContext.xml編寫HelloWorld類·在項(xiàng)目SpringDemo中,新建HelloWorld類,包名為com.SpringDemopackage

com.SpringDemo;public

class

HelloWorld

{public

void

show(){System.out.println("歡迎Spring!");}}配置applicationContext.xml文件·在文件applicationContext.xml中,添加一個(gè)<bean>節(jié)點(diǎn)<bean

id="hw"

class="com.SpringDemo.HelloWorld"></bean>·class的屬性由“包名+類名”的方式組

溫馨提示

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

評(píng)論

0/150

提交評(píng)論