動(dòng)力節(jié)點(diǎn)老杜Spring6框架實(shí)戰(zhàn)入門教程第二章_第1頁
動(dòng)力節(jié)點(diǎn)老杜Spring6框架實(shí)戰(zhàn)入門教程第二章_第2頁
動(dòng)力節(jié)點(diǎn)老杜Spring6框架實(shí)戰(zhàn)入門教程第二章_第3頁
動(dòng)力節(jié)點(diǎn)老杜Spring6框架實(shí)戰(zhàn)入門教程第二章_第4頁
動(dòng)力節(jié)點(diǎn)老杜Spring6框架實(shí)戰(zhàn)入門教程第二章_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

Spring6第二章二、Spring概述2.1Spring簡介來自百度百科Spring是一個(gè)開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。Spring最初的出現(xiàn)是為了解決EJB臃腫的設(shè)計(jì),以及難以測試等問題。Spring為簡化開發(fā)而生,讓程序員只需關(guān)注核心業(yè)務(wù)的實(shí)現(xiàn),盡可能的不再關(guān)注非業(yè)務(wù)邏輯代碼(事務(wù)控制,安全日志等)。2.2Spring8大模塊注意:Spring5版本之后是8個(gè)模塊。在Spring5中新增了WebFlux模塊。SpringCore模塊這是Spring框架最基礎(chǔ)的部分,它提供了依賴注入(DependencyInjection)特征來實(shí)現(xiàn)容器對Bean的管理。核心容器的主要組件是BeanFactory,BeanFactory是工廠模式的一個(gè)實(shí)現(xiàn),是任何Spring應(yīng)用的核心。它使用IoC將應(yīng)用配置和依賴從實(shí)際的應(yīng)用代碼中分離出來。SpringContext模塊如果說核心模塊中的BeanFactory使Spring成為容器的話,那么上下文模塊就是Spring成為框架的原因。這個(gè)模塊擴(kuò)展了BeanFactory,增加了對國際化(I18N)消息、事件傳播、驗(yàn)證的支持。另外提供了許多企業(yè)服務(wù),例如電子郵件、JNDI訪問、EJB集成、遠(yuǎn)程以及時(shí)序調(diào)度(scheduling)服務(wù)。也包括了對模版框架例如Velocity和FreeMarker集成的支持SpringAOP模塊Spring在它的AOP模塊中提供了對面向切面編程的豐富支持,SpringAOP模塊為基于Spring的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)。通過使用SpringAOP,不用依賴組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中,可以自定義攔截器、切點(diǎn)、日志等操作。SpringDAO模塊提供了一個(gè)JDBC的抽象層和異常層次結(jié)構(gòu),消除了煩瑣的JDBC編碼和數(shù)據(jù)庫廠商特有的錯(cuò)誤代碼解析,用于簡化JDBC。SpringORM模塊Spring提供了ORM模塊。Spring并不試圖實(shí)現(xiàn)它自己的ORM解決方案,而是為幾種流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATISSQL映射,這些都遵從Spring的通用事務(wù)和DAO異常層次結(jié)構(gòu)。SpringWebMVC模塊Spring為構(gòu)建Web應(yīng)用提供了一個(gè)功能全面的MVC框架。雖然Spring可以很容易地與其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC對控制邏輯和業(yè)務(wù)對象提供了完全的分離。SpringWebFlux模塊SpringFramework中包含的原始Web框架SpringWebMVC是專門為ServletAPI和Servlet容器構(gòu)建的。反應(yīng)式堆棧Web框架SpringWebFlux是在5.0版的后期添加的。它是完全非阻塞的,支持反應(yīng)式流(ReactiveStream)背壓,并在Netty,Undertow和Servlet3.1+容器等服務(wù)器上運(yùn)行。SpringWeb模塊Web上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于Web的應(yīng)用程序提供了上下文,提供了Spring和其它Web框架的集成,比如Struts、WebWork。還提供了一些面向服務(wù)支持,例如:實(shí)現(xiàn)文件上傳的multipart請求。2.3Spring特點(diǎn)輕量從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。Spring是非侵入式的:Spring應(yīng)用中的對象不依賴于Spring的特定類??刂品崔D(zhuǎn)Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對象依賴的其它對象會(huì)通過被動(dòng)的方式傳遞進(jìn)來,而不是這個(gè)對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時(shí)不等對象請求就主動(dòng)將依賴傳遞給它。面向切面Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。容器Spring包含并管理應(yīng)用對象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用??蚣躍pring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為S

溫馨提示

  • 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)論