摘要:在中,框架的發(fā)布版本包括了個不同的模塊,每個模塊會有個文件二進(jìn)制類庫源碼的文件以及的文件。所有的模塊都構(gòu)建于核心容器之上。的模塊在模塊中,對面向切面編程提供了豐富的支持。的模塊提供了為添加代理的功能。測試提供了測試模塊以致力于應(yīng)用的測試。
在Spring 4.0中,Spring框架的發(fā)布版本包括了20個不同的模塊,每個模塊會有3個JAR文件(二進(jìn)制類庫、源碼的JAR文件以及JavaDoc的JAR文件)。完整的庫JAR文件如圖所示。
這些模塊依據(jù)其所屬的功能可以劃分為6類不同的功能,如圖所示。
Spring核心容器
容器是Spring框架最核心的部分,它管理著Spring應(yīng)用中bean的創(chuàng)建、配置和管理。在該模塊中,包括了Spring bean工廠,它為Spring提供了DI的功能。基于bean工廠,我們還會發(fā)現(xiàn)有多種Spring應(yīng)用上下文的實(shí)現(xiàn),每一種都提供了配置Spring的不同方式。除了bean工廠和應(yīng)用上下文,該模塊也提供了許多企業(yè)服務(wù),例如E-mail、JNDI訪問、EJB集成和調(diào)度。
所有的Spring模塊都構(gòu)建于核心容器之上。當(dāng)你配置應(yīng)用時,其實(shí)你隱式地使用了這些類。
Spring的AOP模塊
在AOP模塊中,Spring對面向切面編程提供了豐富的支持。這個模塊是Spring應(yīng)用系統(tǒng)中開發(fā)切面的基礎(chǔ)。與DI一樣,AOP可以幫助應(yīng)用對象解耦。借助于AOP,可以將遍布系統(tǒng)的關(guān)注點(diǎn)(例如事務(wù)和安全)從它們所應(yīng)用的對象中解耦出來。
數(shù)據(jù)訪問與集成
使用JDBC編寫代碼通常會導(dǎo)致大量的樣板式代碼,例如獲得數(shù)據(jù)庫連接、創(chuàng)建語句、處理結(jié)果集到最后關(guān)閉數(shù)據(jù)庫連接。Spring的JDBC和DAO(Data Access Object)模塊抽象了這些樣板式代碼,使我們的數(shù)據(jù)庫代碼變得簡單明了,還可以避免因?yàn)殛P(guān)閉數(shù)據(jù)庫資源失敗而引發(fā)的問題。該模塊在多種數(shù)據(jù)庫服務(wù)的錯誤信息之上構(gòu)建了一個語義豐富的異常層,以后我們再也不需要解釋那些隱晦專有的SQL錯誤信息了!
對于那些更喜歡ORM(Object-Relational Mapping)工具而不愿意直接使用JDBC的開發(fā)者,Spring提供了ORM模塊。Spring的ORM模塊建立在對DAO的支持之上,并為多個ORM框架提供了一種構(gòu)建DAO的簡便方式。Spring沒有嘗試去創(chuàng)建自己的ORM解決方案,而是對許多流行的ORM框架進(jìn)行了集成,包括Hibernate、Java Persisternce API、Java Data Object和MyBatis。Spring的事務(wù)管理支持所有的ORM框架以及JDBC。
Web與遠(yuǎn)程調(diào)用
MVC(Model-View-Controller)模式是一種普遍被接受的構(gòu)建Web應(yīng)用的方法,它可以幫助用戶將界面邏輯與應(yīng)用邏輯分離。Java從來不缺少M(fèi)VC框架,Apache的Struts、JSF、WebWork和Tapestry都是可選的最流行的MVC框架。
雖然Spring能夠與多種流行的MVC框架進(jìn)行集成,但它的Web和遠(yuǎn)程調(diào)用模塊自帶了一個強(qiáng)大的MVC框架,有助于在Web層提升應(yīng)用的松耦合水平。
除了面向用戶的Web應(yīng)用,該模塊還提供了多種構(gòu)建與其他應(yīng)用交互的遠(yuǎn)程調(diào)用方案。
Spring遠(yuǎn)程調(diào)用功能集成了RMI(Remote Method Invocation)、Hessian、Burlap、JAX-WS,
同時Spring還自帶了一個遠(yuǎn)程調(diào)用框架:HTTP invoker。Spring還提供了暴露和使用REST API的良好支持。
Instrumentation
Spring的Instrumentation模塊提供了為JVM添加代理(agent)的功能。具體來講,它為Tomcat提供了一個織入代理,能夠?yàn)門omcat傳遞類文件,就像這些文件是被類加載器加載的一樣。如果這聽起來有點(diǎn)難以理解,不必對此過于擔(dān)心。
測試
Spring提供了測試模塊以致力于Spring應(yīng)用的測試。
通過該模塊,你會發(fā)現(xiàn)Spring為使用JNDI、Servlet和Portlet編寫單元測試提供了一系列的mock對象實(shí)現(xiàn)。對于集成測試,該模塊為加載Spring應(yīng)用上下文中的bean集合以及與Spring上下文中的bean進(jìn)行交互提供了支持。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67724.html
摘要:表示少女與緊耦合在它的構(gòu)造函數(shù)中自行創(chuàng)建了。面向切面編程往往被定義為促使軟件系統(tǒng)實(shí)現(xiàn)關(guān)注點(diǎn)的分離一項(xiàng)技術(shù)系統(tǒng)由許多不同的組件組成,每個組件各負(fù)責(zé)一特定的功能。我們可以把切面想象為覆蓋在很多組件之上的一個外殼。 第1章 Spring之旅 說明 1、本文抄寫了《Spring 實(shí)戰(zhàn)》重點(diǎn)內(nèi)容,參考了GitHub上的代碼 2、每個人的學(xué)習(xí)方式不一樣,但目的是一樣的,活學(xué)活用。最近一直在聽《我...
摘要:這個文件會出現(xiàn)在創(chuàng)建的模板工程中,如果是單模塊工程,則是對整個項(xiàng)目的依賴管理如果是多模塊工程,該是總文件,該文件中會定義項(xiàng)目的子模塊以及對子模塊的依賴進(jìn)行管理等,子模塊定義在子模塊下,子模塊文件只管理子模塊的依賴。 雖然maven已經(jīng)提供了maven-archetype-webapp、maven-archetype-quickstart等項(xiàng)目骨架幫助我們快速構(gòu)建項(xiàng)目架構(gòu),但是默認(rèn)提供的...
摘要:傳統(tǒng)的代碼中,在類中調(diào)用其他對象,都是自己出來一個對象,然后調(diào)用,這樣代碼的耦合度就比較高。日志對象和主程序的耦合度降到最低,即使更改日志對象的操作,主程序不受影響。 SSM框架網(wǎng)站后臺搭建(一) 1.所用技術(shù)簡單介紹 1.SSM中的S:Spring Spring在百度詞條上的解釋是: Spring是一個開放源代碼的設(shè)計層面框架,他解決的是業(yè)務(wù)邏輯層和其他各層的松耦合問題,因此它將面向...
摘要:服務(wù)器充當(dāng)微服務(wù)架構(gòu)體系中的服務(wù)注冊中心。其他的微服務(wù),使用客戶端連接到,并維持心跳連接,系統(tǒng)維護(hù)人員可以通過來監(jiān)控系統(tǒng)中各個微服務(wù)是否正常運(yùn)行。 當(dāng)前微服務(wù)架構(gòu)逐漸成為系統(tǒng)開發(fā)的主流方向,搭建微服務(wù)方式可以有多種,例如springcloud、dubbo、k8s等,本系列文章將基于本人參與的實(shí)際項(xiàng)目,來介紹基于springcloud搭建微服務(wù)的方式,Spring Cloud是一個基于S...
摘要:的面向的異常遵從通用的異常層次結(jié)構(gòu)。比如以前常用的框架,現(xiàn)在常用的框架包含許多項(xiàng)目,下面挑一些最常用的出來總結(jié)一下。狀態(tài)是流程中事件發(fā)生的地點(diǎn),在流程中通過轉(zhuǎn)移的方式從一個狀態(tài)到另一個狀態(tài),流程的當(dāng)前狀況稱為流程數(shù)據(jù)。 如今做Java尤其是web幾乎是避免不了和Spring打交道了,但是Spring是這樣的大而全,新鮮名詞不斷產(chǎn)生,學(xué)起來給人一種凌亂的感覺,我就在這里總結(jié)一下,理順頭緒...
閱讀 2167·2023-04-26 02:19
閱讀 1951·2021-11-19 09:40
閱讀 1735·2021-09-29 09:35
閱讀 3598·2021-09-29 09:34
閱讀 4406·2021-09-07 10:16
閱讀 5611·2021-08-11 11:14
閱讀 3612·2019-08-30 15:54
閱讀 1657·2019-08-30 15:53