spring容器

weixin_43942304發表於2020-10-10

圖解spring容器

在這裡插入圖片描述

核心容器(core container)

spring-core
這個jar 檔案包含Spring 框架基本的核心工具類。Spring 其它元件要都要使用到這個包裡的類,是其它元件的基本核心,當然你也可以在自己的應用系統中使用這些工具類。
外部依賴Commons Logging, (Log4J)。

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.3.7.RELEASE</version>
</dependency>

spring-beans
這個jar 檔案是所有應用都要用到的,它包含訪問配置檔案、建立和管理bean 以及進行Inversion ofControl / Dependency Injection(IoC/DI)操作相關的所有類。如果應用只需基本的IoC/DI 支援,引入spring-core.jar 及spring-beans.jar 檔案就可以了。
外部依賴spring-core,(CGLIB)。

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>

spring-context
這個jar 檔案為Spring 核心提供了大量擴充套件。可以找到使用Spring ApplicationContext特性時所需的全部類,JDNI 所需的全部類,instrumentation元件以及校驗Validation 方面的相關類。
外部依賴spring-beans, (spring-aop)。

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.7.RELEASE</version>
 </dependency>

spring-context-support
包含支援快取Cache(ehcache)、JCA、JMX、 郵件服務(Java Mail、COS Mail)、任務計劃Scheduling(Timer、Quartz)方面的類。
以前的版本中應該是這個:spring-support.jar這個jar 檔案包含支援UI模版(Velocity,FreeMarker,JasperReports),郵件服務,指令碼服務(JRuby),快取Cache(EHCache),任務計劃Scheduling(uartz)方面的類。
外部依賴spring-context, (spring-jdbc, Velocity,FreeMarker, JasperReports, BSH, Groovy,JRuby, Quartz, EHCache)

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>

spring-expression
模組提供了一個強大的表示式語言,用於在執行時查詢和處理物件圖。該語言支援設定和獲取屬性值;屬性賦值,方法呼叫,訪問陣列的內容,收集和索引器,邏輯和算術運算,命名變數,並從Spring的IOC容器的名字物件檢索,它也支援列表選擇和投影以及常見的列表聚合。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>

AOP、aspects、spring-instrument 、messaging

Spring-aop(必須)
這個jar 檔案包含在應用中使用Spring 的AOP 特性時所需的類和原始碼級後設資料支援。
使用基於AOP 的Spring特性,如宣告型事務管理(Declarative Transaction Management),也要在應用裡包含這個jar包。
外部依賴spring-core, (spring-beans,AOP Alliance, CGLIB,Commons Attributes)

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>

aspectj的runtime包(必須)

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.9.1</version>
</dependency>

aspectjweaver是aspectj的織入包(必須)

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.1</version>
</dependency>

Spring-aspects
提供對AspectJ的支援,以便可以方便的將面向方面的功能整合進IDE中,比如Eclipse AJDT。
外部依賴。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>

spring-instrument
Spring3.0對伺服器的代理介面。

spring-instrument-tomcat
Spring3.0對Tomcat的連線池的整合。

spring-messaging
spring-messaging模組為整合messaging api和訊息協議提供支援

Data Access/Intergration

spring-dao
已廢棄

spring-jdbc
這個jar 檔案包含對Spring 對JDBC 資料訪問進行封裝的所有類。
外部依賴spring-beans,spring-dao。

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>

spring-tx
以前是在這裡org.springframework.transaction
為JDBC、Hibernate、JDO、JPA、Beans等提供的一致的宣告式和程式設計式事務管理支援。

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>

spring-orm
包含Spring對DAO特性集進行了擴充套件,使其支援iBATIS、JDO、OJB、TopLink, 因為Hibernate已經獨立成包了,現在不包含在這個包裡了。這個jar檔案裡大部分的類都要依賴spring-dao.jar裡的類,用這個包時你需要同時包含spring-dao.jar包。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>4.3.7.RELEASE</version>
</dependency>

spring-oxm
Spring 對Object/XMl的對映支援,可以讓Java與XML之間來回切換。

spring-jms
這個jar包提供了對JMX 1.0/1.2的支援類。java訊息服務與Spring-massaging對應。
外部依賴spring-beans,spring-aop, JMXAPI。

web

spring-web
這個jar 檔案包含Web 應用開發時,用到Spring 框架時所需的核心類,包括自動載入Web ApplicationContext 特性的類、Struts 與JSF 整合類、檔案上傳的支援類、Filter 類和大量工具輔助類。
外部依賴spring-context, Servlet API, (JSP API, JSTL,Commons FileUpload, COS)。

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>

spring-webmvc
這個jar 檔案包含Spring MVC 框架相關的所有類。包括框架的Servlets,Web MVC框架,控制器和檢視支援。當然,如果你的應用使用了獨立的MVC 框架,則無需這個JAR 檔案裡的任何類。
外部依賴spring-web, (spring-support,Tiles,iText,POI)。

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>

spring-websocket

test

Spring-test
Spring-test支援spring組建junit或TestNG的整合測試和單元測試。它提供了一致spring ApplicationContext的載入和上下文的快取。他還提供了可以用來測試程式碼隔離的模擬物件。

https://www.cnblogs.com/nwu-edu/p/9542074.html

相關文章