訂閱
糾錯
加入自媒體

解析Spring核心技術IoC、AOP

2021-06-15 09:51
動力節點
關注

Spring是一個開放源代碼的設計層面框架,他解決的是業務邏輯層和其他各層的松耦合問題,因此它將面向接口的編程思想貫穿整個系統應用。

本文章將深入淺出講解Spring的核心技術IoC、AOP,剖析框架的源代碼。讓大家快速掌握框架的原理和應用。

Spring 框架是什么?

Spring 是于 2003 年興起的一個輕量級的Java 開發框架,它是為了解決企業應用開發的復雜性而創建的。Spring 的核心是控制反轉(IoC)和面向切面編程(AOP)。Spring 是可以在Java SE/E中使用的輕量級開源框架。

Spring 的主要作用就是為代碼“解耦”,降低代碼間的耦合度。就是讓對象和對象(模塊和模塊)之間關系不是使用代碼關聯,而是通過配置來說明。即在 Spring 中說明對象(模塊)的關系。

Spring 根據代碼的功能特點,使用Ioc 降低業務對象之間耦合度。IoC 使得主業務在相互調用過程中,不用再自己維護關系了,即不用再自己創建要使用的對象了。而是由 Spring 容器統一管理,自動“注入”,注入即賦值。 而AOP 使得系統級服務得到了最大復用,且不用再由程序員手工將系統級服務“混雜”到主業務邏輯中了,而是由 Spring 容器統一完成“織入”。

Spring的優點?

Spring 是一個框架,是一個半成品的軟件。有 20 個模塊組成。它是一個容器管理對象,容器是裝東西的,Spring 容器不裝文本,數字。裝的是對象。Spring 是存儲對象的容器。

(1) 輕量

Spring 框架使用的jar 都比較小,一般在 1M 以下或者幾百 kb。Spring 核心功能的所需的jar 總共在 3M 左右。

Spring 框架運行占用的資源少,運行效率高。不依賴其他jar

(2) 針對接口編程,解耦合

Spring 提供了Ioc 控制反轉,由容器管理對象,對象的依賴關系。原來在程序代碼中的對象創建方式,現在由容器完成。對象之間的依賴解耦合。

(3) AOP 編程的支持

通過 Spring 提供的 AOP 功能,方便進行面向切面的編程,許多不容易用傳統OOP 實現的功能可以通過AOP 輕松應付在 Spring 中,開發人員可以從繁雜的事務管理代碼中解脫出來,通過聲明式方式靈活地進行事務的管理,提高開發效率和質量。

(4) 方便集成各種優秀框架

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

Spring 像插線板一樣,其他框架是插頭,可以容易的組合到一起。需要使用哪個框架,就把這個插頭放入插線板。不需要可以輕易的移除。

Spring 體系結構

Spring 由 20 多個模塊組成,它們可以分為數據訪問/集成(Data Access/Integration)、Web、面向切面編程(AOP, Aspects)、提供JVM 的代理(Instrumentation)、消息發送(Messaging)、核心容器(Core Container)和測試(Test)。

IoC 控制反轉

控制反轉(IoC,Inversion of Control),是一個概念,是一種思想。指將傳統上由程序代碼直接操控的對象調用權交給容器,通過容器來實現對象的裝配和管理?刂品崔D就是對對象控制權的轉移,從程序代碼本身反轉到了外部容器。通過容器實現對象的創建,屬性賦值,依賴的管理。

IoC 是一個概念,是一種思想,其實現方式多種多樣。當前比較流行的實現方式是依賴注入。應用廣泛。

依賴:classA 類中含有classB 的實例,在 classA 中調用classB 的方法完成功能,即 classA 對 classB 有依賴。

Ioc 的實現:

依賴注入:DI(Dependency Injection),程序代碼不做定位查詢,這些工作由容器自行完成。

依賴注入 DI 是指程序運行過程中,若需要調用另一個對象協助時,無須在代碼中創建被調用者,而是依賴于外部容器,由外部容器創建后傳遞給程序。 Spring 的依賴注入對調用者與被調用者幾乎沒有任何要求,完全支持對象之間依賴關系的管理。

Spring 框架使用依賴注入(DI)實現IoC。

Spring 容器是一個超級大工廠,負責創建、管理所有的Java 對象,這些Java 對象被稱為Bean。Spring 容器管理著容器中Bean 之間的依賴關系, Spring 使用“依賴注入”的方式來管理Bean 之間的依賴關系。使用IoC 實現對象之間的解耦和。

開發工具準備

開發工具:idea2017 以上依賴管理:maven3 以上jdk:1.8 以上

需要設置maven 本機倉庫:

       Spring 的第一個程序

舉例:01-primay

創建maven 項目

引入maven 依賴 pom.xml

定義接口與實體類

1  2  3  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

發表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續

暫無評論

暫無評論

    人工智能 獵頭職位 更多
    掃碼關注公眾號
    OFweek人工智能網
    獲取更多精彩內容
    文章糾錯
    x
    *文字標題:
    *糾錯內容:
    聯系郵箱:
    *驗 證 碼:

    粵公網安備 44030502002758號