-
Spring簡介
Spring主要作用是用來解耦,降低程式碼之間的耦合度。根據功能的不同,可以將系統的程式碼分為主業務邏輯與系統服務邏輯。
-
主業務邏輯之間程式碼聯絡緊密,相互呼叫較多,複用性相對較低;
-
系統服務邏輯相對來說功能獨立,主要是為主業務邏輯提供系統級的服務,如日誌、安全、事務等,複用性相對較高。
Spring根據程式碼的功能特點,將降低耦合度分為了兩種方式:控制反轉IoC與面向切面AOP。
- IoC控制反轉是的主業務在相互呼叫的過程中,不需要使用者手動維護之間的關係,即不需要手動建立物件,而是交由Spring容器進行統一管理,自動注入。
- AOP面向切面程式設計,將系統服務邏輯進行抽取公用,使系統服務得到了最大複用,而且不需要使用者手工將系統服務混雜到主業務邏輯中,交由Spring容器進行統一執行。
-
-
Spring核心結構
Spring經過多年發展,現已成為事實上的行業標準,並且衍生出了眾多子專案,如Spring Data、Spring Web mvc、Spring Boot等
我們將的Spring指的是Spring Framework框架,目前Web模組與Data模組均已發展為子專案Spring MVC與Spring Data。Spring Framework是一個分層清晰並且依賴關係、指責定位非常明確的輕量級框架,主要包括Core container(核型容器)模組、AOP/Aspects模組以及Data(資料庫訪問)模組和Web(web應用)模組等,並且做到了獨立,可插拔式開發。
-
Spring特點
-
非侵入式
Spring框架的API不會出現在業務邏輯中,即業務邏輯就是POJO。業務邏輯中沒有Spring相關的API,可以快速移植到其他框架
-
容器
Spring容器來管理物件的生命週期、物件間的依賴關係。
-
IoC
控制反轉(Inversion of Control),建立物件的例項不是由呼叫者完成,而是交由Spring容器完成,並注入呼叫者。
應用IoC後,一個物件依賴的其他物件會被動的傳入,而不是這個物件自己建立或者查詢依賴物件。即不是物件從容器中查詢依賴,而是容器在物件初始化時主動將依賴傳入。
-
AOP
AOP面向切面程式設計,是一種程式設計思想,是對物件導向OOP的補充。允許通過分離主業務邏輯與系統級服務進行開發,可以把日誌、安全、事務管理等服務剝離出來,提取為公用程式碼,這樣既降低了程式碼耦合,也提高了程式碼的複用率。AOP就是將這些系統服務抽取形成一個切面,然後將切面動態的植入到業務邏輯中。
-