spring源码构建以及模块划分和依赖
目錄
Spring源碼構建
環境環境
安裝Gradle
編譯源碼
spring中的依賴關系
spring中的版本號規則
語義化版本命名通行規則
Spring版本命名規則
Spring源碼構建
環境環境
JDK1.8
IDEA
Gradle
Spring源碼Github下載地址:
https://github.com/spring-projects/spring-framework/archive/v5.0.2.RELEASE.zip
由于Spirng5以后都是采用Gradle來編譯,所以構建源碼前需要先安裝Gradle環境
Gradle:使用的是源碼的build.gradle里的版本 4.3.1,下載鏈接:https://gradle.org/next-steps/?version=4.3.1&format=all
?
安裝Gradle
下載后解壓并配置環境變量即可
編譯源碼
1.切到 spring-framework-5.0.2.RELEASE 目錄,運行gradlew.bat
看到下圖就表示編譯成功了
2.導入到IDEA
構建成功后就可以查看類圖了
?
?
spring中的依賴關系
spring的結構圖如下:
分為五個大模塊:
核心容器
spring core,beans:包含DI和IOC,BeanFactory 容器實例化后并不會自動實例化Bean,只有當Bean 被使用時 BeanFactory 容器才會對該 Bean 進行實例化與依賴關系的裝配。
spring-context:?擴展了BeanFactory,添加了Bean生命周期控制等,ApplicationContext是該模塊的核心接口,她的超類是BeanFactory。與BeanFactory 不同的是ApplicationContext容器實例化后會自動對所有的單實例Bean進行實例化與依賴關系的裝配
spring-context-support:?對Spring IOC 容器的擴展支持。
spring-context-indexer: Spring的類管理組件和Classpath掃描
spring-expression: 統一表達式語言(EL)的擴展模塊
AOP和設備支持
spring-aop:?Spring 的另一個核心模塊,是AOP 主要的實現模塊
spring-aspects:?集成自AspectJ框架,主要是為Spring AOP提供多種AOP 實現方法。
spring-instrument:?基于JAVA SE中的"java.lang.instrument"設計的,應該算是AOP的一個支援模塊
數據訪問與集成
spring-jdbc: Spring 提供的JDBC抽象框架的主要實現模塊,用于簡化SpringJDBC操作
spring-tx: Spring JDBC事務控制實現模塊
spring-orm:?ORM 框架支持模塊, 集成 Hibernate, Java Persistence API (JPA)等
spring-oxm:?提供一個抽象層以支撐OXM(Object-to-XML-Mapping)
spring-jms:(JavaMessagingService)能夠發送和接收信息
Web組件
spring-web: 為Spring提供最基礎的Web支持,建立于核心容器之上,通過Servlet或者Listeners 來初始化IOC 容器。
spring-webmvc:?Web-Servlet模塊,實現了Spring MVC的Web應用。
spring-websocket: 主要是與Web客戶端的全雙工通訊的協議。
spring-webflux:?新的非堵塞函數式 Reactive Web 框架,可以用來建立異步的,非阻塞,事件驅動的服務。
通信報文
spring-messaging:?為Spring 框架集成一些基礎的報文傳送應用。
集成測試
spring-test:為測試提供支持
依賴圖:
根據maven里的Jar包的依賴關系整理的:比方說spring-context就dependency于這些Jar
spring中的版本號規則
語義化版本命名通行規則
對版本的迭代順序命名做了規范,其版本號的格式為 X.Y.Z(又稱 Major.Minor.Patch),遞增的規則為:
| 序號 | 格式要求 | 說明 |
| X | 非負整數 | 表示主版本號(Major),當 API 的兼容性變化時,X 需遞增。 |
| Y | 非負整數 | 表示次版本號(Minor),當增加功能時(不影響 API 的兼容性),Y 需遞增 |
| Z | 非負整數 | ?表示修訂號(Patch),當做 Bug 修復時(不影響 API 的兼容性),Z 需遞增。 |
?
?
?
?
Spring版本命名規則
| 描述方式 | 說明 | 含義 |
| Snapshot | 快照版 | 尚不穩定、處于開發中的版本 |
| Release | 穩定版 | 功能相對穩定,可以對外發行,但有時間限制 |
| GA | 正式版 | 代表廣泛可用的穩定版(General Availability) |
| M | 里程碑版 | (M 是 Milestone 的意思)具有一些全新的功能或是具有里程碑意義的版本。 |
| RC | 終測版 | Release Candidate(最終測試),即將作為正式版發布。 |
?
總結
以上是生活随笔為你收集整理的spring源码构建以及模块划分和依赖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis缓存击穿和缓存雪崩、缓存穿透以
- 下一篇: Gradle构建中:No cached