官术网_书友最值得收藏!

1.1.1 Spring基礎框架

Spring基礎框架由Rod Johnson在2003年設計并實現,自誕生之初就被認為是一種容器,其整體架構如圖1-1所示。

015-1

圖1-1 Spring基礎框架整體架構

我們先來看圖1-1中位于底部的“核心容器”部分,該部分包含了一個容器所應該具備的主體功能,涉及基于依賴注入(Dependency Injection,DI)的JavaBean處理機制、面向切面編程(Aspect Oriented Programming,AOP)、上下文(Context)以及Spring自身所提供的表達式語言(Spring Expression Language,SpEL)等輔助功能。

對于系統開發而言,我們需要在系統運行時基于某個對象的使用需求,動態提供它所依賴的其他對象,而這一點可以通過依賴注入實現。Spring會在適當的時機創建一個Bean,然后像注射器一樣把它注入目標對象中,這樣就完成了對各個對象之間關系的控制。可以說,依賴注入是開發人員使用Spring基礎框架的基本手段,我們通過依賴注入獲取所需的各種Bean。Spring為開發人員提供了三種不同的依賴注入類型,分別是字段注入、構造器注入和Setter方法注入。

而所謂的切面,本質上解決的是關注點分離的問題。在面向對象編程的世界中,我們把一個應用程序按照職責和定位拆分成多個對象,這些對象構成了不同的層次。而面向切面編程可以說是面向對象編程的一種補充,目標是將一個應用程序抽象成各個切面,這樣就可以將其單獨抽象為獨立的模塊進行開發和維護。Spring為開發人員提供了連接點(JoinPoint)、通知(Advice)、切點(PointCut)和切面(Aspect)等一系列組件,幫助他們構建面向切面的編程模型。

我們再來看圖1-1的上半部分,這里包含了構建應用程序所需要的兩大功能組件,即數據訪問和Web服務,它們也是我們日常開發中最常用的組件。這兩大部分組件中包含的內容非常多,而且充分體現了Spring的集成性。也就是說,框架內部整合了業界主流的數據庫驅動、消息中間件、ORM框架等各種工具,開發人員可以根據需要靈活地替換和調整自己想要使用的工具。

從開發語言上講,雖然Spring最廣泛的應用場景是在Java EE領域,但當前的5.x版本也支持Kotlin、Groovy以及各種動態開發語言。

主站蜘蛛池模板: 怀柔区| 江华| 明溪县| 肇东市| 潼南县| 黑水县| 竹溪县| 会东县| 阿拉善右旗| 广平县| 龙山县| 山东省| 泰顺县| 蕲春县| 万源市| 金阳县| 铜川市| 陆川县| 武胜县| 阜阳市| 迁安市| 赤峰市| 肃宁县| 玛沁县| 德昌县| 九江市| 沾益县| 重庆市| 中方县| 鄂伦春自治旗| 苏尼特右旗| 乐昌市| 包头市| 大冶市| 江孜县| 彰化县| 泰兴市| 大姚县| 左云县| 朝阳县| 兰考县|