Spring框架功能分爲哪些模塊?其作用是什麼?

Spring是一個開源框架,它由Rod Johnson創建。它是爲了解決企業應用開發的複雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限於服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。本文,就來說一說Spring框架功能模塊構成及概念。

Spring框架功能模塊構成及概念,Spring框架採用分層架構,功能要素被分成20個模塊,分爲Core Container、Data Access/Integration、Web、AOP、Instrumentation、Messaging和Test。

Spring Cloud Alibaba 提供微服務開發的一站式解決方案。包含開發分佈式應用微服務的必需組件,依託Spring Cloud Alibaba,需要添加一些註解和少量配置,將Spring Cloud 應用接入阿里微服務解決方案,通過阿里中間件來迅速搭建分佈式應用系統。
在這裏插入圖片描述

一、核心容器Core Container

Spring的核心容器是其他模塊建立的基礎,它主要由Beans模塊、Core模塊、Context模塊、Context-support模塊和SpEL(Spring Expression Language,Spring表達式語言)模塊組成。

Beans模塊:提供了BeanFactory,是工廠模式的經典實現,Spring將管理對象稱爲Bean。

Core核心模塊:提供了Spring框架的基本組成部分,包括IoC和DI功能。

Context上下文模塊:建立在Core和Beans模塊的基礎之上,它是訪問定義和配置的任何對象的媒介。其中ApplicationContext接口是上下文模塊的焦點。

Context-support 模塊:提供了對第三方庫嵌入 Spring 應用的集成支持,比如緩存(EhCache、Guava、JCache)、郵件服務(JavaMail)、任務調度(CommonJ、Quartz)和模板引擎(FreeMarker、JasperReports、速率)。

SpEL模塊:是Spring 3.0後新增的模塊,它提供了Spring Expression Language支持,是運行時查詢和操作對象圖的強大的表達式語言。

二、數據訪問/集成Data Access/Integration

數據訪問/集成層包括JDBC、ORM、OXM、JMS和Transactions模塊。

JDBC模塊:提供了一個JDBC的抽象層,大幅度地減少了在開發過程中對數據庫操作的編碼。

ORM模塊:對流行的對象關係映射API,包括JPA、JDO和Hibernate提供了集成層支持。

OXM模塊:提供了一個支持對象/ XML映射的抽象層實現,如JAXB、Castor、XMLBeans、JiBX和XStream。

JMS 模塊:指 Java 消息傳遞服務,包含使用和產生信息的特性,自 4.1 版本後支持與Spring-message模塊的集成。

Transactions事務模塊:支持對實現特殊接口以及所有POJO類的編程和聲明式的事務管理。

三、Web

Spring的Web層包括WebSocket、Servlet、Web和Portlet模塊。

WebSocket模塊:Spring 4.0以後新增的模塊,它提供了WebSocket 和SockJS的實現,以及對STOMP的支持。

Servlet模塊:也稱爲Spring-webmvc模塊,包含了Spring的模型—視圖—控制器(MVC)和REST Web Services實現的Web應用程序。

Web模塊:提供了基本的Web開發集成特性,例如:多文件上傳功能、使用Servlet監聽器來初始化IoC容器以及Web應用上下文。

Portlet模塊:提供了在Portlet環境中使用MVC實現,類似Servlet模塊的功能。

四、其他模塊

Spring的其他模塊還有AOP、Aspects、Instrumentation以及Test模塊。

AOP 模塊:提供了面向切面編程實現,允許定義方法攔截器和切入點,將代碼按照功能進行分離,以降低耦合性。

Aspects 模塊:提供了與AspectJ的集成功能,AspectJ是一個功能強大且成熟的面向切面編程(AOP)框架。

Instrumentation 模塊:提供了類工具的支持和類加載器的實現,可以在特定的應用服務器中使用。

Messaging模塊:Spring 4.0以後新增的模塊,它提供了對消息傳遞體系結構和協議的支持。

Test模塊:提供了對單元測試和集成測試的支持。

對於學習者需要學習SpringCloudAlibaba技術棧中的Nacos、Sentinel、RocketMQ、Seata、SMS、Dubbo SpringCloud組件等,掌握SpringCloudAliaba技術棧中的技術點、微服務中各種問題的解決方案、企業驅動各個解決方案、SpringCloudAlibaba的同時引入各種替換方案。

想了解更多Java技能,你可以關注我,定期發佈技術熱點和行業趨勢分析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章