Spring源碼深度解析,Spring框架大體介紹(一)(附代碼示例:)

Spring框架大體介紹(一)

目錄

Spring的整體架構

一, 核心容器(Core Container)

二, AOP和Instrumentation

三, 消息(Messaging)

四, 數據訪問/集成(Data Access/ Integration)

五, Web

六, Test

七, 項目Demo地址


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功能加強的一個子接口,構建與CoreBeans之上,繼承了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-jdbcspring-txspring-ormspring-oxmspring-jms.

  • spring-jdbc 提供了JDBC抽象層,消除了冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼.
  • spring-tx 爲實現了特定接口的類提供了可編程的聲明式事務管理支持,對所有的POJOs都適用
  • spring-orm 提供了對象相關映射(ORM)集成,包含JPAJDOHibernate,使用spring-orm模塊可以將這些框架與spring提供的特性結合在一起使用,比如事務管理.
  • spring-oxm 提供了對Object/Xml Mapping實現的抽象,包括JAXB,CastorXMLBeansJiBX以及XStream.
  • spring-jms 包含了一些生產和消費消息的特性,從spring Framework 4.1開始,提供了與spring-messaging集成.

五, Web

包含spring-webspring-webmvcspring-websocketspring-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源碼(二)(附代碼示例:)

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