首頁(yè)新聞動(dòng)態(tài)正文

Spring的體系結(jié)構(gòu)介紹【java培訓(xùn)】

更新時(shí)間:2020-04-13 來源:黑馬程序員 瀏覽量:

1586761774322_學(xué)IT就到黑馬程序員.gif


Spring框架采用的是分層架構(gòu),它一系列的功能要素被分成20個(gè)模塊,這些模塊大體分為Core Container、Data Access/Integration、Web、AOP(Aspect Oriented Programming)、Instrumentation、Messaging和Test。

1586761738013_pic.jpg

上圖中,包含了Spring框架的所有模塊,其中,灰色背景模塊為本書中所涉及的主要模塊。接下來分別對(duì)體系結(jié)構(gòu)中的模塊作用進(jìn)行簡(jiǎn)單介紹,具體如下。

1、 Core Container(核心容器)

Spring的核心容器是其他模塊建立的基礎(chǔ),它主要由Beans模塊、Core模塊、Context模塊、Context-support模塊和SpEL(Spring Expression Language,Spring表達(dá)式語(yǔ)言)模塊組成,具體介紹如下。

·Beans模塊:提供了BeanFactory,是工廠模式的經(jīng)典實(shí)現(xiàn),Spring將管理對(duì)象稱為Bean。

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

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

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

·SpEL模塊:是Spring 3.0后新增的模塊,它提供了Spring Expression Language支持,是運(yùn)行時(shí)查詢和操作對(duì)象圖的強(qiáng)大的表達(dá)式語(yǔ)言。

2、 Data Access/Integration(數(shù)據(jù)訪問/集成)

數(shù)據(jù)訪問/集成層包括JDBC、ORM、OXM、JMS和Transactions模塊,具體介紹如下。

·JDBC模塊:提供了一個(gè)JDBC的抽象層,大幅度地減少了在開發(fā)過程中對(duì)數(shù)據(jù)庫(kù)操作的編碼。

·ORM模塊:對(duì)流行的對(duì)象關(guān)系映射API,包括JPA、JDO和Hibernate提供了集成層支持。

·OXM模塊:提供了一個(gè)支持對(duì)象/ XML映射的抽象層實(shí)現(xiàn),如JAXB、Castor、XMLBeans、JiBX和XStream。

·JMS 模塊:指 Java 消息傳遞服務(wù),包含使用和產(chǎn)生信息的特性,自 4.1 版本后支持與Spring-message模塊的集成。

·Transactions事務(wù)模塊:支持對(duì)實(shí)現(xiàn)特殊接口以及所有POJO類的編程和聲明式的事務(wù)管理。

3、 Web

Spring的Web層包括WebSocket、Servlet、Web和Portlet模塊,具體介紹如下。

·WebSocket模塊:Spring 4.0以后新增的模塊,它提供了WebSocket 和SockJS的實(shí)現(xiàn),以及對(duì)STOMP的支持。

·Servlet模塊:也稱為Spring-webmvc模塊,包含了Spring的模型—視圖—控制器(MVC)和REST Web Services實(shí)現(xiàn)的Web應(yīng)用程序。

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

·Portlet模塊:提供了在Portlet環(huán)境中使用MVC實(shí)現(xiàn),類似Servlet模塊的功能。

4、 其他模塊

Spring的其他模塊還有AOP、Aspects、Instrumentation以及Test模塊,具體介紹如下。

·AOP 模塊:提供了面向切面編程實(shí)現(xiàn),允許定義方法攔截器和切入點(diǎn),將代碼按照功能進(jìn)行分離,以降低耦合性。

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

·Instrumentation 模塊:提供了類工具的支持和類加載器的實(shí)現(xiàn),可以在特定的應(yīng)用服務(wù)器中使用。

·Messaging模塊:Spring 4.0以后新增的模塊,它提供了對(duì)消息傳遞體系結(jié)構(gòu)和協(xié)議的支持。

·Test模塊:提供了對(duì)單元測(cè)試和集成測(cè)試的支持。推薦了解黑馬程序員Java培訓(xùn)課程。


猜你喜歡

怎么使用Spring Boot 實(shí)現(xiàn)一個(gè)微服務(wù)?


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!