javascript
轻松理解Spring框架的基本思想
說起Spring框架,就不得不說J2EE的EJB。年齡稍大一些的Java程序員對J2EE的EJB還是記憶猶新的,當時使用EJB開發大型應用系統非常時髦,Java程序員無不以掌握EJB開發技術為自豪,程序員引以為豪的原因是EJB的技術太復雜了,以至于一般的Java程序員很難掌握這么復雜的技術。
EJB的學習成本很高,開發效率卻不高,需要編寫很多重復的代碼,這些問題阻止了EJB的繼續發展。就在EJB技術止步不前的時候,Spring框架在合適的時機出現了,Spring框架和EJB不同,Spring框架的學習成本非常低,它是一個輕量級的開發框架,更多強調面向對象的設計,而不是讓現有的技術變得更復雜,它使用JavaBean替代了復雜的EJB,并且為JavaBean提供了簡單易用的應用配置框架。
一個JavaBean就是一個公共類,它可以被其它JavaBean類作為組件來使用,并且JavaBea之間的組配不需要在代碼級實現,完全可以在配置層和注解層實現,Spring會自動選擇相適配的JavaBean來組配運行。這種自動適配機制避免了JavaBean與使用類之間的代碼耦合,提高了程序的可擴展性和維護性。
例如類A要使用類B,類B是類A的屬性,如果直接在類A中創建類B,當類B因業務需要修改時,也需要修改類A的代碼,這種寫法就是代碼耦合,也可以說類A和類B屬于代碼耦合。
假如我們把類B的創建交給Spring,Spring通過配置文件或者通過Java注解來創建類B,然后再由Spring把創建的類B實例和類A的實例組配起來,這樣就避免了類A與類B的代碼耦合。這種機制就是Spring框架的控制反轉思想,相當于類A把創建類B權利交給了Spring,由Spring來控制類B的創建。
Spring框架還有一個比較重要的功能,那就是AOP機制。Spring框架的AOP機制可以把系統中的一些通用功能抽取出來,作為JavaBean來使用,與此同時在系統的業務流程代碼中設置調用這些JavaBean功能的切入點,當系統業務流程執行到切入點時,Spring會自動把需要調用的JavaBean橫向切入到業務流程指定的位置,AOP的這種技術也稱為“橫切”技術。
例如,在一個業務系統中,當用戶要進入需要操作權限的頁面時,系統會先進入登錄頁,要求用戶登錄系統后再進入該頁面。這樣的操作權限頁面會有多個,如果為每個頁面都寫登錄業務邏輯處理代碼,顯然是會造成代碼冗余,維護起來也非常麻煩。比較好的做法是把用戶登錄業務處理作為一個獨立的JavaBean,這個JavaBean也稱為AOP的“切面”。然后在需要用戶操作權限的業務流程頁面設置“切入點”,并通過注解或配置文件將“切面”和“切入點”連接起來。當業務流程執行到“切入點”時,Spring框架會自動把與切入點關聯的“切面”切入到業務流程“切入點”所在的位置,開始執行“切面”代碼,直至切面代碼執行完畢,然后根據“切面”返回的結果確定是否執行后面的流程。下圖是用戶登錄功能切入到業務流程的示意圖。
?
圖1 用戶登錄功能切入到業務流程示意圖
Spring框架還有一個最大的特征就是和現有的開發框架不是競爭關系,而是采用融合的方式將其它框架集成進來,充分利用其它框架的技術,為系統實現提供最優解決方案。SSM就是Spring框架融合了MVC框架技術和MyBatis數據庫框架技術。
總結
以上是生活随笔為你收集整理的轻松理解Spring框架的基本思想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】选择结构排坑指南
- 下一篇: javascript全栈开发实践-web