Spring框架大體介紹(一)
目錄
四, 數據訪問/集成(Data Access/ Integration)
Spring的整體架構
Spring 是於2003年興起的一個輕量級的java 開源框架,Spring是一個全面的解決方案,它堅持一個原則:不從新造輪子。已經有較好解決方案的領域,Spring絕不重複性實現,比如:對象持久化和OR映射,Spring只對現有的JDBC,Hibernate等技術提供支持,使之更容易使用,而不做重複的實現。Spring框架有很多特性,這些特性由7個定義良好的模塊構成。
Spring 框架是一個分層架構,它 包含一系列的功能要素,並被分爲大約20個模塊,如
一, 核心容器(Core Container)
包含模塊 spring-core, spring-beans, spring-context, spring-
context-supprot
,spring-exxpression
- spring-core 主要包含Spring框架基本的核心工具類。
- spring-beans 是框架的基礎部分,提供 Ioc (控制反轉) 和依賴注入特性。這裏的基礎概念是 BeanFactory,它提供對Factory 模式的經典 實現來消除對程序性單例模式的需要,並真正地允許你從程序邏輯中分離出依賴關係和配置。
- spring-context 即Spring上下文容器,它是BeanFactory功能加強的一個子接口,構建與
Core
和Beans
之上,繼承了Beans的特性,擴展添加了國際化、時間傳播、資源加載和對Context的創建和支持。ApplicationContext - spring-exxpression 提供 一個強大的表達式語言用於在運行時查詢和操作對象,該語言支持設置/獲取屬性值,屬性的分配,方法的調用,訪問數組上下文、容器和索引器、邏輯和算是運算符、命名變量以及從Spring的容器中根據名稱檢索對象
二, AOP和Instrumentation
包含模塊 spring-aop, spring-aspects, spring-instrument, spring-instrument-tomcat
- spring-aop 即,面向切面編程,它提供了與AOP聯盟兼容的編程實現
- spring-aspects 提供了與
AspectJ
的集成 - spring-instrument 提供了類工具的支持與
classloader
的實現,以便在特定的應用服務上使用。 spring-instrument-tomcat
包含了spring對於Tomcat的代理
三, 消息(Messaging)
- spring framework 4 包含了spring-messaging模塊,其中使用了來自於spring integration項目的關鍵抽象,如Message, MessageChannel, MessageHandler等,他們可以作爲基於消息的應用服務的基礎。該模塊還包含了一組可將消息映射到方法的註解,類似於spring-mvc的編程模型.
四, 數據訪問/集成(Data Access/ Integration)
包含spring-jdbc
, spring-tx
, spring-orm
, spring-oxm
, spring-jms
.
spring-jdbc
提供了JDBC抽象層,消除了冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼.spring-tx
爲實現了特定接口的類提供了可編程的聲明式事務管理支持,對所有的POJOs都適用spring-orm
提供了對象相關映射(ORM)集成,包含JPA
,JDO
,Hibernate
,使用spring-orm
模塊可以將這些框架與spring提供的特性結合在一起使用,比如事務管理.spring-oxm
提供了對Object/Xml Mapping實現的抽象,包括JAXB
,Castor
,XMLBeans
,JiBX
以及XStream
.spring-jms
包含了一些生產和消費消息的特性,從spring Framework 4.1
開始,提供了與spring-messaging
集成.
五, Web
包含spring-web
, spring-webmvc
, spring-websocket
, spring-webmvc-portlet
spring-web
提供了基於面向web集成的特性,如多文件上傳功能、通過servlet listener初始化IoC容器與面向web的ApplicationContext
,它還包含了HTTP客戶端與Spring遠程支持的web相關的部分.spring-webmvc
(又名web-servlet
)包含了Spring對於Web應用的MVC與REST實現,Spring MVC框架提供了領域模型代碼和Web表單之間的分離,並集成了Spring框架的所有其他特性.spring-webmvc-portlet
(又名web-portlet
)提供了基於Portlet環境使用MVC的實現.
六, Test
spring-test模塊通過Junit或TestNG對spring的組件提供了單元測試和集成測試
七, 項目Demo地址
參考資料:https://blog.csdn.net/u010209217/article/details/80617310
參考資料: https://docs.spring.io/spring/docs/4.3.18.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/
Spring源碼深度解析,(附代碼示例 碼雲地址: https://gitee.com/Crazycw/SpringCode.git)
請看下篇: Spring源碼深度解析,初始Spring源碼(二)(附代碼示例:)