更新時間:2021-06-16 11:40:12 來源:動力節點 瀏覽1190次
概述
Spring 是最受歡迎的企業級 Java 應用程序開發框架,數以百萬的來自世界各地的開發人員使用 Spring 框架來創建性能好、易于測試、可重用的代碼。
Spring 框架是一個開源的 Java 平臺,它最初是由 Rod Johnson 編寫的,并且于 2003 年 6 月首次在 Apache 2.0 許可下發布。
Spring 是輕量級的框架,其基礎版本只有 2 MB 左右的大小。
Spring 框架的核心特性是可以用于開發任何 Java 應用程序,但是在 Java EE 平臺上構建 web 應用程序是需要擴展的。 Spring 框架的目標是使 J2EE 開發變得更容易使用,通過啟用基于 POJO 編程模型來促進良好的編程實踐。
三層架構
A 表現層 web層 MVC是表現層的一個設計模型
B 業務層 service層
C 持久層 dao層
Spring 的優良特性
非侵入式:基于Spring開發的應用中的對象可以不依賴于Spring的API
控制反轉:IOC——Inversion of Control,指的是將對象的創建權交給 Spring 去創建。使用 Spring 之前,對象的創建都是由我們自己在代碼中new創建。而使用 Spring 之后。對象的創建都是給了 Spring 框架。
依賴注入:DI——Dependency Injection,是指依賴的對象不需要手動調用 setXX 方法去設置,而是通過配置賦值。
面向切面編程:Aspect Oriented Programming——AOP
容器:Spring 是一個容器,因為它包含并且管理應用對象的生命周期
組件化:Spring 實現了使用簡單的組件配置組合成一個復雜的應用。在 Spring 中可以使用XML和Java注解組合這些對象。
一站式:在 IOC 和 AOP 的基礎上可以整合各種企業應用的開源框架和優秀的第三方類庫(實際上 Spring 自身也提供了表現層的 SpringMVC 和持久層的 Spring JDBC)
使用 Spring 框架的好處
下面列出的是使用 Spring 框架主要的好處:
Spring 可以使開發人員使用 POJOs 開發企業級的應用程序。只使用 POJOs 的好處是你不需要一個 EJB 容器產品,比如一個應用程序服務器,但是你可以選擇使用一個健壯的 servlet 容器,比如 Tomcat 或者一些商業產品。
Spring 在一個單元模式中是有組織的。即使包和類的數量非常大,你只要擔心你需要的,而其它的就可以忽略了。
Spring 不會讓你白費力氣做重復工作,它真正的利用了一些現有的技術,像 ORM 框架、日志框架、JEE、Quartz 和 JDK 計時器,其他視圖技術。
測試一個用 Spring 編寫的應用程序很容易,因為環境相關的代碼被移動到這個框架中。此外,通過使用 JavaBean-style POJOs,它在使用依賴注入注入測試數據時變得更容易。
Spring 的 web 框架是一個設計良好的 web MVC 框架,它為比如 Structs 或者其他工程上的或者不怎么受歡迎的 web 框架提供了一個很好的供替代的選擇。MVC 模式導致應用程序的不同方面(輸入邏輯,業務邏輯和UI邏輯)分離,同時提供這些元素之間的松散耦合。模型(Model)封裝了應用程序數據,通常它們將由 POJO 類組成。視圖(View)負責渲染模型數據,一般來說它生成客戶端瀏覽器可以解釋 HTML 輸出。控制器(Controller)負責處理用戶請求并構建適當的模型,并將其傳遞給視圖進行渲染。
Spring 對 JavaEE 開發中非常難用的一些 API(JDBC、JavaMail、遠程調用等),都提供了封裝,使這些API應用難度大大降低。
輕量級的 IOC 容器往往是輕量級的,例如,特別是當與 EJB 容器相比的時候。這有利于在內存和 CPU 資源有限的計算機上開發和部署應用程序。
Spring 提供了一致的事務管理接口,可向下擴展到(使用一個單一的數據庫,例如)本地事務并擴展到全局事務(例如,使用 JTA)。
依賴注入(DI)
Spring 最認同的技術是控制反轉的依賴注入(DI)模式。控制反轉(IoC)是一個通用的概念,它可以用許多不同的方式去表達,依賴注入僅僅是控制反轉的一個具體的例子。
當編寫一個復雜的 Java 應用程序時,應用程序類應該盡可能的獨立于其他的 Java 類來增加這些類可重用可能性,當進行單元測試時,可以使它們獨立于其他類進行測試。依賴注入(或者有時被稱為配線)有助于將這些類粘合在一起,并且在同一時間讓它們保持獨立。
到底什么是依賴注入?讓我們將這兩個詞分開來看一看。這里將依賴關系部分轉化為兩個類之間的關聯。例如,類 A 依賴于類 B。現在,讓我們看一看第二部分,注入。所有這一切都意味著類 B 將通過 IoC 被注入到類 A 中。
依賴注入可以以向構造函數傳遞參數的方式發生,或者通過使用 setter 方法 post-construction。由于依賴注入是 Spring 框架的核心部分,所以我將在一個單獨的章節中利用很好的例子去解釋這一概念。
面向切面的程序設計(AOP):
Spring 框架的一個關鍵組件是面向切面的程序設計(AOP)框架。一個程序中跨越多個點的功能被稱為橫切關注點,這些橫切關注點在概念上獨立于應用程序的業務邏輯。有各種各樣常見的很好的關于方面的例子,比如日志記錄、聲明性事務、安全性,和緩存等等。
在 OOP 中模塊化的關鍵單元是類,而在 AOP 中模塊化的關鍵單元是方面。AOP 幫助你將橫切關注點從它們所影響的對象中分離出來,然而依賴注入幫助你將你的應用程序對象從彼此中分離出來。
Spring 框架的 AOP 模塊提
供了面向方面的程序設計實現,可以定義諸如方法攔截器和切入點等,從而使實現功能的代碼徹底的解耦出來。使用源碼級的元數據,可以用類似于 .Net 屬性的方式合并行為信息到代碼中。我將在一個獨立的章節中討論更多關于 Spring AOP 的概念。
以上就是動力節點小編介紹的"Spring的概述",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習