Spring參考手冊(cè) 1 Spring Framework簡(jiǎn)介和典型的Web應(yīng)用程序

翻譯自Spring官方文檔 4.1.2版本

一、Spring Framework構(gòu)成##

Spring Framework根據(jù)功能不同大約可以分為20個(gè)模塊。這些模塊又可以分組為:核心容器(Core Container), 數(shù)據(jù)訪問(wèn)/集成(Data Access/Integration),網(wǎng)絡(luò)(Web), 面向切面編程(Aspect Oriented Programming), 工具(Instrumentation), 消息(Messaging), and 測(cè)試(Test)。

1.1 核心容器###

核心容器包含:spring-core, spring-beans, spring-context, 和spring-expression (Spring Expression Language)模塊。

spring-corespring-beans模塊提供框架的基本組成部分,包括IoC 和Dependency Injection特性。BeanFactory是一個(gè)復(fù)雜的工廠模式的實(shí)現(xiàn)。它不需要你手動(dòng)編碼來(lái)實(shí)現(xiàn)單例并且允許你在實(shí)際的編程中將配置和對(duì)象間的依賴解耦。

spring-context模塊構(gòu)建在spring-corespring-beans模塊的基礎(chǔ)上:通過(guò)框架在存取對(duì)象的方式上是和JNDI注冊(cè)類似的。Context模塊繼承Beans模塊的特點(diǎn)并添加國(guó)際化支持(例如:resource bundles)、事件傳播、資源加載、上下文的透明創(chuàng)建,例如:一個(gè)Servlet容器。Context模塊同樣也支持Java EE特性例如EJB,、JMX和基本的遠(yuǎn)程調(diào)用。ApplicationContext接口是Context模塊的中心點(diǎn)。

spring-expression模塊提供強(qiáng)大的表達(dá)式語(yǔ)言在運(yùn)行時(shí)用來(lái)查詢和操作對(duì)象圖。它是在JSP 2.1規(guī)范中指定的unified expression language (unified EL)的擴(kuò)展。這個(gè)語(yǔ)言支持設(shè)置和獲取屬性值,屬性賦值,方法調(diào)用,訪問(wèn)數(shù)組、集合、索引,邏輯和算數(shù)運(yùn)算,命名變量,根據(jù)名稱從Spring的IoC容器取回對(duì)象。它還支持列表映射和選取就像普通的列表集合一樣。

1.2 AOP和工具###

spring-aop模塊提供一個(gè)AOP 行業(yè)兼容的面向切面的編程實(shí)現(xiàn)允許你定義以下幾個(gè)操作:例如定義方法攔截器、定義切點(diǎn)來(lái)清晰的分離功能不同的代碼。通過(guò)使用源碼級(jí)元數(shù)據(jù)的功能,你可以將行為信息融入在你的代碼(記錄日志這個(gè)最容易想到)。

獨(dú)立的spring-aspects模塊集成了AspectJ。

spring-instrument模塊提供了類工具支持和類加載器實(shí)現(xiàn),被用于一些應(yīng)用程序服務(wù)器中。

1.3 消息###

Spring Framework 4包括了一個(gè)spring-messaging模塊,它具有一些主要的抽象例如:Message、MessageChannel、MessageHandler和其他一些抽象一起充當(dāng)基于消息的應(yīng)用程序的基礎(chǔ)。這個(gè)模塊也包含了一組注解來(lái)映射消息到方法,類似于Spring MVC基于注解的編程方式。

1.4 數(shù)據(jù)訪問(wèn)/集成###

數(shù)據(jù)訪問(wèn)/集成層包括JDBC, ORM, OXM, JMS, 和Transaction等模塊。
spring-jdbc模塊提供一個(gè)JDBC抽象層,消除了冗長(zhǎng)的JDBC編碼并且解析了數(shù)據(jù)庫(kù)廠商特定的錯(cuò)誤代碼。
對(duì)于那些實(shí)現(xiàn)了特殊接口和你的POJO類,spring-tx模塊提供了編程式和聲明式事務(wù)管理。
spring-orm模塊為流行的對(duì)象關(guān)系映射APIs提供了集成,包括:JPA, JDO, 和Hibernate。如果使用spring-orm模塊你可以使用這些O/R-mapping框架同時(shí)結(jié)合使用Spring提供的所有其他特性。例如:之前說(shuō)到的聲明式事務(wù)管理特性。
spring-oxm模塊提供了一個(gè)抽象層來(lái)支持Object/XML mapping的實(shí)現(xiàn),例如:JAXB, Castor, XMLBeans, JiBX 和XStream。
spring-jms模塊包含了生產(chǎn)和消費(fèi)信息的特性。從Spring Framework 4.1以后,它提供了與spring-messaging模塊集成。

1.5 網(wǎng)絡(luò)###

網(wǎng)絡(luò)層包括spring-web, spring-webmvc, spring-websocket,和spring-webmvc-portlet模塊。

spring-web模塊提供了基本的面向網(wǎng)絡(luò)的集成特性,例如:文件上傳功能、初始化IoC容器可以使用Servlet監(jiān)聽器和一個(gè)面向網(wǎng)絡(luò)的應(yīng)用程序上下文。它也包含了Spring遠(yuǎn)程調(diào)用支持的網(wǎng)絡(luò)相關(guān)的部分。

spring-webmvc模塊(也被叫做Web-Servlet模塊)包含了為web應(yīng)用程序設(shè)計(jì)的Spring的model-view-controller (MVC)實(shí)現(xiàn)。Spring的MVC框架在域模型(domain model)代碼和web表單之間提供了一個(gè)清晰的劃分,并且與Spring Framework的所有其他特性集成。

spring-webmvc-portlet模塊(也被叫做Web-Portlet模塊)提供了MVC實(shí)現(xiàn)用來(lái)在門戶環(huán)境(Portlet environment )中使用,借鑒了spring-webmvc的功能。

1.6 測(cè)試###

spring-test模塊通過(guò)JUnit 或者 TestNG為Spring組件進(jìn)行單元測(cè)試和集成測(cè)試提供了支持。它提供了ApplicationContexts和那些上下文緩存的一致性加載。它也提供了模擬對(duì)象(mock objects)使你可以去測(cè)試你的代碼在隔離的狀態(tài)。

二、典型的完全成熟的Spring web application##


Spring的聲明式事務(wù)管理特性使web應(yīng)用程序完全是事務(wù)性的,就像你使用EJB管理事務(wù)那樣。你的所有自定義業(yè)務(wù)邏輯可以被實(shí)現(xiàn)為簡(jiǎn)單的POJO(其實(shí)我對(duì)POJO還挺模糊)并且被Spring的 IoC 容器管理。額外的服務(wù)包括發(fā)送郵件并且驗(yàn)證是獨(dú)立與web層的,這樣允許你選擇在哪里執(zhí)行驗(yàn)證規(guī)則。Spring的ORM支持已經(jīng)與JPA, Hibernate 和 JDO集成;例如,當(dāng)使用Hibernate時(shí),你可以繼續(xù)使用你已有的映射文件和標(biāo)準(zhǔn)的Hibernate SessionFactory配置。表單控制器(Form controller)通過(guò)域模型(domain model)無(wú)縫的與web層集成,不再需要ActionForms或者其他類來(lái)將HTTP參數(shù)轉(zhuǎn)換成你域模型里的值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,253評(píng)論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 文章作者:Tyan博客:noahsnail.com 2.Introduction to the Spring Fr...
    SnailTyan閱讀 5,531評(píng)論 7 56
  • 什么是Spring Spring是一個(gè)開源的Java EE開發(fā)框架。Spring框架的核心功能可以應(yīng)用在任何Jav...
    jemmm閱讀 16,765評(píng)論 1 133
  • 我想,謊言從不是出于故意?!爸e”字拆開,是在荒野中說(shuō)話,“一片空曠中,因?yàn)槿狈Π踩卸匝宰哉Z(yǔ)”,想想怪可憐的,我...
    乙辰閱讀 494評(píng)論 0 0

友情鏈接更多精彩內(nèi)容