你對Spring框架的認識有哪些?

Spring框架

Spring 框架是當前 Java 領域應用最廣的框架,它之所以那麼成功,這主要是得益於它的設計理念。它的理念包括 IoC (Inversion of Control,控制反轉) 和 AOP(Aspect Oriented Programming,面向切面編程)。下面我們就來一起學習下 Spring 這個優秀的開源框架。

什麼是 Spring ?

Spring 是分層的 Java SE/EE 應用 full-stack 輕量級開源框架,以 IoC (Inversion of Control,控制反轉) 和 AOP(Aspect Oriented Programming,面向切面編程)爲內核,提供了展現層 Spring MVC 和持久層 Spring JDBC 以及業務層事務管理等衆多的企業級應用技術,還能整合開源世界衆多 著名的第三方框架和類庫,逐漸成爲使用最多的 Java EE 企業應用開源框架。



Spring 的優勢

1.方便解耦,簡化開發

通過Spring提供的IoC容器,我們可以將對象之間的依賴關係交由Spring進行控制,避免硬編碼所造成的過度程序耦合。有了Spring,用戶不必再爲單實例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注於上層的應用。

2.AOP編程的支持

通過Spring提供的AOP功能,方便進行面向切面的編程,許多不容易用傳統OOP實現的功能可以通過AOP輕鬆應付。

3.聲明式事務的支持

在Spring中,我們可以從單調煩悶的事務管理代碼中解脫出來,通過聲明式方式靈活地進行事務的管理,提高開發效率和質量。

4.方便程序的測試

可以用非容器依賴的編程方式進行幾乎所有的測試工作,在Spring裏,測試不再是昂貴的操作,而是隨手可做的事情。例如:Spring對Junit4支持,可以通過註解方便的測試Spring程序。

5.方便集成各種優秀框架

Spring不排斥各種優秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優秀框架(如Struts、Mybatis、Hessian、Quartz)等的直接支持。

6.降低Java EE API的使用難度

Spring對很多難用的Java EE API(如JDBC,JavaMail,遠程調用等)提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些Java EE API的使用難度大爲降低。

7.Java 源碼是經典學習範例

Spring的源碼設計精妙、結構清晰、匠心獨運,處處體現着大師對Java設計模式靈活運用以及對Java技術的高深造詣。Spring框架源碼無疑是Java技術的最佳實踐範例。如果想在短時間內迅速提高自己的Java技術水平和應用開發水平,學習和研究Spring源碼將會使你收到意想不到的效果。


Spring 的體系結構

Spring 框架採用分層架構,根據不同的功能被劃分成了多個模塊,這些模塊大體可分爲 Data Access/Integration、Web、AOP、Aspects、Instrumentation、Messaging、Core Container 和 Test 。

1. Data Access/Integration(數據集成/訪問)

  • JDBC 模塊:提供了一個 JDBC 的抽象層,大幅度減少了在開發過程中對數據庫操作的編碼。

  • ORM 模塊:對流行的對象關係映射 API,包括 JPA、JDO、Hibernate 和 iBatis 以及 Mybatis 提供的集成層。

  • OXM 模塊:提供了一個支持對象/XML 映射的抽象層實現,如 JAXB、Castor、XMLBeans、JiBX 和 XStream。

  • JMS 模塊:指 Java 消息服務,包含的功能爲生產和消費的信息。

  • Transactions 事務模塊:支持編程和聲明式事務管理實現特殊接口類。

2. Web

  • WebSocket 模塊:全雙工通信方式,即客戶端和服務器之間的雙向通信。

  • Servlet 模塊:包括 模型—視圖—控制器(MVC) 實現 Web 應用程序。

  • Web 模塊:提供了基本的 Web 開發集成特性。

  • Portlet 模塊:提供了在 Portlet 環境中使用 MVC 實現,類似 Web-Servlet 模塊的功能。

3. Core Container(核心容器)

  • Beans 模塊:提供了 BeanFactory,是工廠模式的經典實現,Spring 將管理對象稱之爲 Bean。

  • Core (核心)模塊:提供了 Spring 框架的基本組成部分,包括 IoC(控制反轉) 和 DI(依賴注入) 功能。

  • Context (上下文)模塊:建立在覈心和 Beans 模塊的基礎之上,它是訪問定義和配置任何對象的媒介。ApplicationContext 接口是上下文模塊的焦點。

  • SpEL 模塊:是運行時查詢和操作對象圖的強大的表達式語言。

4. 其他模塊

  • AOP 模塊:提供了面向切面編程實現,允許定義方法攔截器和切入點,將代碼按照功能進行分離,以降低耦合性。

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

  • Instrumentation 模塊:提供了類工具的支持和類加載器的實現,可以在特定的應用服務器中使用。

  • Messaging 模塊:爲集成 messaging api 和消息協議提供支持。

  • Test 模塊:支持使用 JUnit 和 TestNG 對 Spring 組件進行測試。


Spring 的安裝使用

官網:https://spring.io/projects/spring-framework

目前 Spring 的最新版本 5.2.4,推薦大家使用 Maven 開發 Spring 項目,搭建環境只需在 pom.xml 文件導入依賴即可。

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

PS:覺得對自己有幫助的,歡迎掃下方二維碼點個關注呦。
在這裏插入圖片描述

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