轉(zhuǎn)帖|行業(yè)資訊|編輯:郝浩|2016-02-22 15:41:01.000|閱讀 1592 次
概述:Spring作為現(xiàn)在最優(yōu)秀的框架之一,已被廣泛的使用。本系列文章將從以下角度對(duì)Spring的架構(gòu)進(jìn)行剖析:設(shè)計(jì)Spring框架總體結(jié)構(gòu)的理念是什么?包含哪幾個(gè)核心組件?為什么需要這些組件?它們又是如何結(jié)合在一起構(gòu)成Spring的總體架構(gòu)?Spring的AOP特性又是如何利用這些基礎(chǔ)架構(gòu)來(lái)工作的?諸如此類問(wèn)題,本文將向你作出一一解答。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Spring總共有十幾個(gè)組件,但是真正核心的組件只有幾個(gè),下面是Spring框架的總體架構(gòu)圖:
從上圖中可以看出Spring框架中的核心組件只有三個(gè):Core、Context和Beans。它們構(gòu)建起了整個(gè)Spring的骨骼架構(gòu)。沒(méi)有它們就不可能有AOP、Web等上層的特性功能。下面也將主要從這三個(gè)組件入手分析Spring。
前面介紹了Spring的三個(gè)核心組件,如果再在它們?nèi)齻€(gè)中選出核心的話,那就非Beans組件莫屬了,為何這樣說(shuō),其實(shí)Spring就是面向Bean的編程(BOP,Bean Oriented Programming),Bean在Spring 中才是真正的主角。
Bean在Spring中作用就像Object對(duì)OOP的意義一樣,沒(méi)有對(duì)象的概念就像沒(méi)有面向?qū)ο缶幊蹋琒pring中沒(méi)有Bean也就沒(méi)有Spring存在的意義。就像一次演出舞臺(tái)都準(zhǔn)備好了但是卻沒(méi)有演員一樣。為什 么要Bean這種角色Bean或者為何在Spring如此重要,這由Spring框架的設(shè)計(jì)目標(biāo)決定,Spring為何如此流行,我們用Spring的原因是什么,想想你會(huì)發(fā)現(xiàn)原來(lái)Spring解決了一個(gè)非常關(guān)鍵的問(wèn)題他可以讓 你把對(duì)象之間的依賴關(guān)系轉(zhuǎn)而用配置文件來(lái)管理,也就是他的依賴注入機(jī)制。而這個(gè)注入關(guān)系在一個(gè)叫Ioc容器中管理,那Ioc容器中有又是什么就是被Bean包裹的對(duì)象。Spring正是通過(guò)把對(duì)象包裝在 Bean中而達(dá)到對(duì)這些對(duì)象管理以及一些列額外操作的目的。
它這種設(shè)計(jì)策略完全類似于Java實(shí)現(xiàn)OOP的設(shè)計(jì)理念,當(dāng)然了Java本身的設(shè)計(jì)要比Spring復(fù)雜太多太多,但是都是構(gòu)建一個(gè)數(shù)據(jù)結(jié)構(gòu),然后根據(jù)這個(gè)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)他的生存環(huán)境,并讓它在這個(gè)環(huán)境中 按照一定的規(guī)律在不停的運(yùn)動(dòng),在它們的不停運(yùn)動(dòng)中設(shè)計(jì)一系列與環(huán)境或者與其他個(gè)體完成信息交換。這樣想來(lái)回過(guò)頭想想我們用到的其他框架都是大慨類似的設(shè)計(jì)理念。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn