Spring 基礎(chǔ)1 —— 介紹

Spring 是一個輕量級控制反轉(zhuǎn)(IoC)面向切面編程(AOP)容器框架,它主要是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而誕生的

目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性

功能:使用基本的 JavaBean 代替 EJB

范圍:任何Java應(yīng)用

Spring 的核心模塊:

  • 核心容器(Spring Core)
  • 應(yīng)用上下文(Spring Context)
  • AOP 模塊(Spring AOP)
  • JDBC 和 DAO 模塊(Spring DAO)
  • 對象實體映射(Spring ORM)
  • Web 模塊(Spring Web)
  • MVC 模塊(Spring Web MVC)

IOC 與 DI

IOC(Inversion of Control,控制反轉(zhuǎn))是 Spring 的核心,貫穿始終。所謂 IOC ,對于 Spring 框架來說,就是由 Spring 來負(fù)責(zé)控制對象的生命周期對象間的關(guān)系

  • 傳統(tǒng)開發(fā)模式:對象之間互相依賴
  • IOC開發(fā)模式:IOC容器安排對象之間的依賴

IOC 在編程過程中不會對業(yè)務(wù)對象構(gòu)成很強(qiáng)的侵入性,使用 IOC 之后,對象具有更好的可實行性,可重用性和可擴(kuò)展性:

  • 降低組件之間的耦合
  • 提高開發(fā)效率和產(chǎn)品質(zhì)量
  • 統(tǒng)一標(biāo)準(zhǔn),提高模塊的復(fù)用性
  • 模塊具有熱插拔特性

DI(Dependency Injection,依賴注入),就是由 IOC 容器在運行期間,動態(tài)地將某種依賴關(guān)系注入到對象之中。所以,依賴注入( DI )和控制反轉(zhuǎn)( IOC )是從不同的角度的描述的同一件事情,就是指通過引入 IOC 容器,利用依賴關(guān)系注入的方式,實現(xiàn)對象之間的解耦

IOC 與 DI 通俗的理解如下:

  • IOC 控制反轉(zhuǎn):說的是創(chuàng)建對象實例的控制權(quán)從代碼控制剝離到 IOC 容器控制,實際就是在 xml 文件控制,側(cè)重于原理
  • DI 依賴注入:說的是創(chuàng)建對象實例時,為這個對象注入屬性值或其它對象實例,側(cè)重于實現(xiàn)

AOP

AOP(Aspect Orient Programming,面向切面編程)專門用于處理系統(tǒng)中分布于各個模塊中的交叉關(guān)注點的問題,在 Java EE 應(yīng)用中,常常通過 AOP 來處理一些具有橫切性質(zhì)的系統(tǒng)級服務(wù),如事務(wù)管理、安全檢查、緩存、對象池管理等,AOP 已經(jīng)成為一種非常常用的解決方案

AOP 代理其實是由 AOP 框架動態(tài)生成的一個對象,該對象可作為目標(biāo)對象使用,代理對象的方法 = 增強(qiáng)處理 + 被代理對象的方法。步驟為

  • 定義普通業(yè)務(wù)組件
  • 定義切入點
  • 定義增強(qiáng)處理

AOP 的關(guān)鍵概念:

  • 切面 - Aspect
    業(yè)務(wù)流程運行的某個特定的步驟,也就是應(yīng)用運行過程的關(guān)注點
  • 連接點 - Join Point
    程序執(zhí)行過程中明確的點,如方法的調(diào)用,或者異常的拋出
  • 增強(qiáng) - Advice
    AOP 框架在特定的切入點執(zhí)行的增強(qiáng)處理
  • 切入點 - Point Cut
    可插入增強(qiáng)的連接點
  • 引入 - Introduction
    將方法或字段添加到被處理的類中。Spring 允許引入新的接口到任何被處理的對象
  • 目標(biāo)對象 - Target Object
    被 AOP 框架進(jìn)行增強(qiáng)處理的對象,也成為被增強(qiáng)對象。如果 AOP 框架時通過運行時代理來實現(xiàn)的,那么這個對象將是一個被代理對象
  • AOP 代理 - AOP Proxy
    AOP 框架創(chuàng)建的對象,簡單來說,代理就是對目標(biāo)對象的增強(qiáng)
  • 織入 - Weaving
    將增強(qiáng)處理添加到目標(biāo)對象中,并創(chuàng)建一個被增強(qiáng)的對象(AOP 代理)的過程就是織入
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 什么是Spring Spring是一個開源的Java EE開發(fā)框架。Spring框架的核心功能可以應(yīng)用在任何Jav...
    jemmm閱讀 16,772評論 1 133
  • 1、Spring是什么 簡單來說,Spring就是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。從...
    拾壹北閱讀 1,012評論 0 10
  • 1.1.1 Spring 框架 Spring 框架是一個分層架構(gòu),由 7 個定義良好的模塊組成。它的成功來源于理念...
    程序員成長記閱讀 750評論 0 0
  • 周末,閑來無事,就和基友出來浪啦。吃完飯,我們決定要找個地方消化一下。大腹便便的實在不好看,于是我提議去書店浪一浪...
    雞仔說閱讀 396評論 0 0

友情鏈接更多精彩內(nèi)容