? ??
通過(guò)這幾天對(duì)Spring的研讀,剖析了Spring的基本核心模塊——IoC和AOP。今天將對(duì)其作個(gè)基礎(chǔ)性的總結(jié)。
???? Spring 是一個(gè)開(kāi)源框架,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的。框架的主要優(yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理 bean 的方式,同時(shí)為 J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架。其中作為Spring的核心模塊即是Spring面向方面編程(AOP)和控制反轉(zhuǎn)(IOC)容器。Spring 設(shè)計(jì)的核心是 org.springframework.beans
包,BeanFactory
BeanFactory
支持兩個(gè)對(duì)象模型單態(tài)和原型。BeanFactory
是Spring作為IOC 容器的基礎(chǔ)。
? ? 控制反轉(zhuǎn)模式:不創(chuàng)建對(duì)象,但是描述創(chuàng)建它們的方式。在代碼中不直接與對(duì)象和服務(wù)連接,但在配置文件中描述哪一個(gè)組件需要哪一項(xiàng)服務(wù)。容器(在 Spring 框架中是 IOC 容器)負(fù)責(zé)將這些聯(lián)系在一起。在典型的 IOC 場(chǎng)景中,容器創(chuàng)建了所有對(duì)象,并設(shè)置必要的屬性將它們連接在一起,決定什么時(shí)間調(diào)用方法。IOC 的一個(gè)實(shí)現(xiàn)模式:通過(guò)接口、通過(guò) JavaBean 的屬性、依賴(lài)性以構(gòu)造函數(shù)的形式提供。
??? 面向方面的編程,即 AOP,是一種編程技術(shù),它允許程序員對(duì)橫切關(guān)注點(diǎn)或橫切典型的職責(zé)分界線的行為(例如日志和事務(wù)管理)進(jìn)行模塊化。AOP 的核心構(gòu)造是方面,它將那些影響多個(gè)類(lèi)的行為封裝到可重用的模塊中。AOP 和 IOC 是補(bǔ)充性的技術(shù),它們都運(yùn)用模塊化方式解決企業(yè)應(yīng)用程序開(kāi)發(fā)中的復(fù)雜問(wèn)題。在典型的面向?qū)ο箝_(kāi)發(fā)方式中,可能要將日志記錄語(yǔ)句放在所有方法和 Java 類(lèi)中才能實(shí)現(xiàn)日志功能。在 AOP 方式中,可以反過(guò)來(lái)將日志服務(wù)模塊化,并以聲明的方式將它們應(yīng)用到需要日志的組件上。當(dāng)然,優(yōu)勢(shì)就是 Java 類(lèi)不需要知道日志服務(wù)的存在,也不需要考慮相關(guān)的代碼。所以,用 Spring AOP 編寫(xiě)的應(yīng)用程序代碼是松散耦合的。AOP 的功能完全集成到了 Spring 事務(wù)管理、日志和其他各種特性的上下文中。
?
鳳凰涅槃/浴火重生/馬不停蹄/只爭(zhēng)朝夕
???? 隱姓埋名/低調(diào)華麗/簡(jiǎn)單生活/完美人生