Spring框架簡介

Spring框架是Spring技術棧的核心,它實現(xiàn)了對bean的依賴管理和AOP的編程方式,降低了代碼的耦合度,極大提升了編程效率,是很好的一站式構(gòu)建企業(yè)級應用的輕量級解決方案。

\bullet 模塊化的spring架構(gòu)

Spring框架是模塊化的,開發(fā)人員可以自由選擇所需部分。Spring框架支持聲明式事務管理,通過RMI或WEB服務遠程訪問用戶的邏輯,并支持多種選擇來持久化用戶數(shù)據(jù)。它提供了全功能的Spring MVC及Spring WebFlux框架,也支持AOP集成到軟件中。

\bullet spring的優(yōu)點

Spring框架是一個輕量級的Java平臺,可以提供完整的基礎設施來支持開發(fā)Java應用程序。它負責基礎設施功能,讓開發(fā)者可以更專注于業(yè)務邏輯的開發(fā)。

\star 本地Java方法可以執(zhí)行數(shù)據(jù)庫事務,無須自己處理事務API;

\star 本地Java方法可以執(zhí)行遠程過程,無須自己處理遠程API;

\star 本地Java方法可以成為HTTP端點,無須自己處理servlet API;

\star 本地Java方法可以擁有管理操作,無須自己處理JMX API;

\star 本地Java方法可以執(zhí)行消息處理,無須自己處理JMS API;

\bullet IOC

Java平臺提供了豐富的應用程序開發(fā)功能,但它缺乏組織基本構(gòu)建模塊成為一個完成系統(tǒng)的方法。開發(fā)者可以使用各種設計模式,如Factory、Abstract Factory、Builder、Decorator等模式來組合各種類和對象實例構(gòu)建應用程序。雖然這些模式可以解決對應的問題,但帶來的問題是使用它的技術門檻比較高,否則難以在應用程序中有效的使用它。

Spring框架的IOC組件通過提供正規(guī)化的方法來組合不同的組件,使它們成為一個完整可用的應用。Spring框架將規(guī)范化的設計模式作為一等對象,方便開發(fā)者將其集成到自己的應用程序中。開發(fā)人員無須手動處理對象間的依賴關系,全部交給Spring容器去管理,大大提升了開發(fā)體驗。

Spring框架常用模塊

Spring框架包含了20多種模塊,涵蓋了企業(yè)級開發(fā)的各個方面。模塊如下:

spring-aop、spring-orm、spring-context-support、spring-webmvc、spring-jdbc、spring-beans-groovy、spring-tx、spring-messaging、spring-context-indexer、spring-webflux、spring-jcl、spring-beans、spring-test、spring-expression、spring-context、spring-web、spring-instrument、spring-aspects、spring-oxm、spring-core、spring-websocket、spring-jms、spring-framework-bom。

七大核心模塊

1、核心容器

核心容器(Core Container)由spring-core、spring-beans、spring-context、spring-context-support、spring-expression模塊組成。

\bullet spring-core和spring-beans模塊是框架的基本部分,包括了IOC和DI功能。BeanFactory是一個復雜工廠模式的實現(xiàn),無須編程就能實現(xiàn)單例,允許開發(fā)人員將配置和特定依賴從實際程序邏輯中解耦。

\bullet spring-context模塊是建立在Core和Beans模塊提供的功能基礎之上的,它是一種在框架類型下實現(xiàn)對象存儲操作的手段。它繼承了Beans模塊的特性,并增加了對國際化的支持、事件廣播、資源加載和創(chuàng)建上下文,也支持如EJB、JMX和基礎遠程訪問的J2EE特性。ApplicationContext接口是Context模塊的主要表現(xiàn)形式。

\bullet spring-context-support模塊提供了對常見的第三方庫的支持,以便集成到spring應用上下文,如緩存(EhCache、JCache)和調(diào)度(CommonJ、Quartz)等。

\bullet spring-expression模塊提供了一種強大的表達式語言,用來在運行時查詢和操作對象圖。它是對JSP2.1規(guī)范所指定的統(tǒng)一表達式語言的一種擴展,這種語言支持對屬性值、屬性參數(shù)、方法調(diào)用、數(shù)組內(nèi)容存儲、收集器和索引、邏輯和算數(shù)的操作機命名變量,并通過名稱從spring控制反轉(zhuǎn)容器中獲取對象。

2、AOP(面向切面編程)和Instrumentation

spring-aop模塊提供AOP的實現(xiàn),可以實現(xiàn)方法攔截器和切入點完全分離代碼。

spring-aspects模塊提供了集成使用AspectJ的功能,spring-instrument模塊提供了類instrumentation的支持和在某些應用服務器使用類加載器實現(xiàn)。spring-instrument-tomcat用于Tomcat?Instrumentation代理。

3、消息

spring4版本開始提供了spring-messaging模塊,包含了Message、MessageChannel、MessageHandler及其他用來提供基于消息的基礎服務。此外還包含一組消息映射方法的注解,類似Spring MVC的注解。

4、數(shù)據(jù)集成與訪問

數(shù)據(jù)訪問/集成層(Data Access/Integration)由JDBC、ORM、OXM、JMS和Transaction模塊組成。

\bullet spring-jdbc模塊提供了一個JDBC抽象層,讓開發(fā)者避免進行繁瑣的JDBC編碼和解析數(shù)據(jù)庫供應商特定的錯誤代碼。

\bullet spring-tx模塊支持用于實現(xiàn)特殊接口和所有POJO類的編程及聲明式事務管理。

\bullet spring-orm模塊為對象關系映射API集成層,包括JPA和Hibernate。它可以將OR映射框架與spring提供的其他功能結(jié)合實現(xiàn)。

\bullet spring-oxm模塊提供了一個支持object/XML映射實現(xiàn)的抽象層,如JAXB。Castor、JiBX和XStream。

\bullet spring-jms模塊包含用于生成和使用消息的功能,從4.1版本開始提供了與spring-messaging的集成。

5、Web

Web層由spring-web、spring-webmvc、spring-websocket、spring-webflux組成。

\bullet spring-web模塊提供了基本的面向web開發(fā)的集成功能,如文件上傳、用于初始化IOC容器的servlet監(jiān)聽、web程序上下文等。它包含了HTTP客戶端及web相關的spring遠程訪問的支持。

\bullet spring-webmvc模塊包含spring的MVC和REST服務功能。

\bullet spring-websocket模塊是基于websocket協(xié)議通信的程序開發(fā)。

\bullet spring-webflux模塊是spring5新增加的支持響應式編程的web開發(fā)框架。

6、測試

spring-test模塊支持通過組合JUnit或TestNG來實現(xiàn)單元測試和集成測試功能。它提供了Srping ApplicationContexts的持續(xù)加載并緩存這些上下文,還提供了用于孤立測試代碼的模擬對象(mock objects)。


--參考文獻《Srping5開發(fā)大全》

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

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

  • 新的一年伊始,由于公司內(nèi)部組織架構(gòu)調(diào)整,本來是做Android方面開發(fā)的,近來要轉(zhuǎn)做下發(fā)接口開發(fā),不可避免就要去學...
    斜杠時光閱讀 39,762評論 5 61
  • 1.框架簡介 Spring 框架是一個Java平臺,它為開發(fā)Java應用程序提供全面的基礎架構(gòu)支持。Spring負...
    閑來也無事閱讀 1,933評論 0 1
  • Spring 框架簡介 Spring 是一個開源框架,是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)建的。框架的主要優(yōu)勢之一...
    JACK_巖閱讀 732評論 0 6
  • spring是J2EE應用程序框架,是輕量級的IoC和AOP的容器框架,主要是針對javaBean的生命周期進行管...
    01_小小魚_01閱讀 483評論 1 1
  • Spring 是一個開源框架,是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢之一就是其分層架構(gòu),分層架構(gòu)...
    ITsupuerlady閱讀 735評論 0 3

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