溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎樣簡單分析Spring

發(fā)布時(shí)間:2022-01-06 21:02:18 來源:億速云 閱讀:134 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關(guān)怎樣簡單分析Spring,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

Spring是一個(gè)開源框架,由Rod Johnson創(chuàng)建。它視為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。

簡單來說,Spring是一個(gè)輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。輕量-從大小和開銷兩個(gè)方面而言Spring都是輕量的。Spring應(yīng)用中的對象不依賴于Spring的特定類??刂品崔D(zhuǎn)-Spring通過IoC技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用其的時(shí)候,一個(gè)對象依賴的其他對象會通過被動的方式傳遞進(jìn)來,而不是這個(gè)對象自己創(chuàng)建或者查找依賴對象??梢岳斫獬蔀镮oC和JNDI相反。面向切面-Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實(shí)現(xiàn)它們應(yīng)該做的-完成業(yè)務(wù)邏輯-僅此而已。它們不負(fù)責(zé)其他的系統(tǒng)級關(guān)注點(diǎn),例如日志或事務(wù)支持。

容器-Spring包含并管理應(yīng)用對象的配置和生命周期,在這個(gè)意義上它是一種容器。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。

框架-Spring可以將簡單的組建配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個(gè)XML文件中。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等),將應(yīng)用邏輯的開發(fā)留給了你。[不過從某種意義上來看,這樣增加了開發(fā)的復(fù)雜性,相當(dāng)于手寫配置文件]

介紹Spring歷史

Spring的基礎(chǔ)架構(gòu)起源于 2000 年早期,它是 Rod Johnson 在一些成功的商業(yè)項(xiàng)目中構(gòu)建的基礎(chǔ)設(shè)施。在 2002 后期,Rod Johnson 發(fā)布了《Expert One-on-One J2EE Design and Development》一書,并隨書提供了一個(gè)初步的開發(fā)框架實(shí)現(xiàn)—— interface21 開發(fā)包,interface21 就是書中闡述的思想的具體實(shí)現(xiàn)。后來, Rod Johnson 在 interface21 開發(fā)包的基礎(chǔ)之上,進(jìn)行了進(jìn)一步的改造和擴(kuò)充,使其發(fā)展為一個(gè)更加開放、清晰、全面、2003 年 2 月 Spring 框架正式成為一個(gè)開源項(xiàng)目,并發(fā)布于 SourceForge 中。

介紹Spring使命

J2EE應(yīng)該更加容易使用面向?qū)ο蟮脑O(shè)計(jì)比任何實(shí)現(xiàn)技術(shù)都重要面向接口編程,而不是針對類編程。Spring將使用接口的復(fù)雜度降低到零。代碼應(yīng)該易于測試[這個(gè)使命其實(shí)是和敏捷中的測試驅(qū)動開發(fā)方法有相照應(yīng)的地方。JavaBean提供了應(yīng)用程序配置的***方法在Java中,已檢查異常(Checked exception)被過度使用。框架不應(yīng)該迫使你捕獲不能恢復(fù)的異常。

Spring受到的批判

Spring不是一個(gè)“標(biāo)準(zhǔn)”。不是J2EE規(guī)范的一部分,沒有通過JCP(Java Community Process)的審核認(rèn)可。
Spring是“超重量級”的。由于Spring涉及的內(nèi)容很多(例如:jdbc,ORM,遠(yuǎn)程訪問等),但其本質(zhì)還是Java技術(shù)的龐大。Spring只是為了這些技術(shù)提供更好的使用方案而已。同時(shí),你可以選擇你需要使用的部分。

介紹Spring包含的模塊

七個(gè)部分:
Spring AOP
Spring ORM
Spring Web
Spring Web MVC
Spring DAO
Spring Context
Spring Core
作為一個(gè)整體,這些模塊為你提供哦了開發(fā)企業(yè)應(yīng)用所需的一切。但你不必將應(yīng)用完全基于Spring框架。你可以自由地挑選適合你的應(yīng)用的模塊而忽略其他的模塊。所有的Spring模塊都是核心容器之上構(gòu)建的。

核心容器

這是Spring框架里最基礎(chǔ)的部分,它提供了依賴注入(Dependency Injection)特征來實(shí)現(xiàn)容器對Bean的管理。這里最基本的概念是BeanFactory,它使用IoC將應(yīng)用配置和依賴說明從實(shí)際的應(yīng)用代碼中分離出來。

應(yīng)用上下文(Context)模塊:
核心模塊的BeanFactory使Spring成為一個(gè)容器,而上下文模塊使它成為一個(gè)框架。這個(gè)模塊擴(kuò)展了BeanFactory的概念,增加了對國際化(I18N)消息、事件傳播以及驗(yàn)證的支持。
另外,這個(gè)模塊提供了許多企業(yè)服務(wù)。例如電子郵件JNDI訪問、EJB集成、遠(yuǎn)程以及時(shí)序調(diào)度(scheduling)服務(wù)。也包括了對模板框架例如Velocity和FreeMarker集成的支持。

Spring的AOP模塊:
Spring在它的AOP模塊中提供了對面向切面編程的豐富支持。這個(gè)模塊是在Spring應(yīng)用中實(shí)現(xiàn)切面編程的基礎(chǔ)。為了確保Spring與其他AOP 框架的互用性,Spring的AOP支持基于AOP聯(lián)盟定義的API。AOP聯(lián)盟是一個(gè)開源項(xiàng)目,它的目標(biāo)是通過定義一組共同的接口和組件來促進(jìn)AOP的使用以及不同的AOP實(shí)現(xiàn)之間的互用性。
Spring的AOP模塊也將元數(shù)據(jù)編程引入了Spring,使用Spring的元數(shù)據(jù)支持,你可以為你的源代碼增加注釋,指示Spring在何處如何應(yīng)用切面函數(shù)。

JDBC抽象和DAO模塊:
使用 JDBC 經(jīng)常導(dǎo)致大量的重復(fù)代碼,取得連接、創(chuàng)建語句、處理結(jié)果集,然后關(guān)閉Spring 的 JDBC 和 DAO 模塊抽取了這些重復(fù)代碼,因此你可以保持你的數(shù)據(jù)庫訪問連接。代碼干凈簡潔,并且可以防止因關(guān)閉數(shù)據(jù)庫資源失敗而引起的問題。這個(gè)模塊還在幾種數(shù)據(jù)庫服務(wù)器給出的錯(cuò)誤消息之上建立了一個(gè)有意義的異常層。使你不用再試圖破譯神秘的私有的 SQL 錯(cuò)誤消息!另外,這個(gè)模塊還使用了 Spring 的 AOP 模塊為 Spring 應(yīng)用中的對象提供了事務(wù)管理服務(wù)。

ORM(對象/關(guān)系 映射集成模塊):
對那些更喜歡使用對象 / 關(guān)系映射工具而不是直接使用 JDBC 的人, Spring 提供了ORM 模塊。Spring 并不試圖實(shí)現(xiàn)它自己的 ORM 解決方案,而是為幾種流行的 ORM 框架提供了集成方案,包括Hibernate、JDO 和 iBATIS SQL 映射。Spring 的事務(wù)管理支持這些ORM 框架中的每一個(gè)也包括 JDBC。

Spring的Web模塊:
Web 上下文模塊建立于應(yīng)用上下文模塊之上,提供了一個(gè)適合于 Web 應(yīng)用的上下文。例如:實(shí)現(xiàn)文件上傳的 multipart 請求,它也另外,這個(gè)模塊還提供了一些面向服務(wù)支持。提供了 Spring 和其它 Web 框架的集成,比如 Struts、WebWork。

Spring的MVC框架:
Spring 為構(gòu)建 Web 應(yīng)用提供了一個(gè)功能全面的 MVC 框架。雖然 Spring 可以很容易地與其它 MVC 框架集成,例如 Struts,但 Spring 的 MVC 框架使用 IoC 對控制邏輯和業(yè)務(wù)對象提供了完全的分離。

Spring 帶來了復(fù)雜的 J2EE 開發(fā)的春天。它的核心是輕量級的 IoC 容器,它的目標(biāo)是為J2EE 應(yīng)用提供了全方位的整合框架,在 Spring 框架下實(shí)現(xiàn)多個(gè)子框架的組合,這些子框架之間可以彼此獨(dú)立,也可以使用其它的框架方案加以代替, Spring 希望為企業(yè)應(yīng)用提供一站式(one-stop shop)的解決方案。

以上就是怎樣簡單分析Spring,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI