spring是一個(gè)優(yōu)秀的開(kāi)源的輕量級(jí)的企業(yè)開(kāi)發(fā)框架. 它充分利用常見(jiàn)的設(shè)計(jì)模式(design patterns) 來(lái)達(dá)到可重用性, 松耦合性, 可移植性 , 可擴(kuò)展性等軟件開(kāi)發(fā)中的基本方面.
spring 最強(qiáng)的一點(diǎn)在于它提供了一個(gè)容器, 在這個(gè)基礎(chǔ)之上, 才有許多其它的強(qiáng)大的功能.
第一個(gè)問(wèn)題: 為什么我們需要spring?
j2ee平臺(tái)上 ,ejb是一個(gè)標(biāo)準(zhǔn), 它針對(duì)企業(yè)開(kāi)發(fā)提供了一個(gè)功能強(qiáng)大的容器, 像 事務(wù), 安全等方面都可以在容器里進(jìn)行聲明式配置, 適合重量級(jí)的開(kāi)發(fā) , 但是 , 針對(duì)中小型的系統(tǒng)來(lái)說(shuō), ejb顯得太過(guò)臃腫, 白白浪費(fèi)很多時(shí)間. (注: ejb我也沒(méi)用過(guò), 這些都是從看rod寫的那本書(expert one-on-one j2ee design and development)上看來(lái)的 ^_^)
struts框架是一個(gè)經(jīng)典的mvc框架, 也是到目前為止我用過(guò)的最多的框架, 它主要的貢獻(xiàn)是把頁(yè)面從業(yè)務(wù)邏輯分離開(kāi)來(lái). 但是它在mvc中的M(模型)層缺少支持, 像事務(wù),安全, 數(shù)據(jù)訪問(wèn)等方面都沒(méi)有.
因此 我們需要一個(gè)適合于輕量級(jí)開(kāi)發(fā)的功能完善(對(duì)企業(yè)開(kāi)發(fā)的各個(gè)方面如事務(wù),安全等)都有支持. 因此, spring誕生了.
spring的作者是 Rod Johnson expert one-on-one j2ee design and evelopment Expert.One.on.one.J2EE.Development.Without.EJB 兩本書的作者, 擁有多年的企業(yè)開(kāi)發(fā)經(jīng)驗(yàn), 熟悉開(kāi)發(fā)中的各種問(wèn)題. 可以說(shuō)spring就是他多年開(kāi)發(fā)經(jīng)驗(yàn)的結(jié)晶.
spring的核心是一個(gè)容器, 其上提供了對(duì)ioc 和 aop的支持.
同時(shí)它也是一個(gè)mvc框架. 目前spring本身沒(méi)有提供orm的實(shí)現(xiàn), 但是它提供了接口, 這樣就可以和現(xiàn)有的orm工具集成, 重點(diǎn)對(duì)hibernate進(jìn)行了支持. 安全方面, acegi作為spring的一個(gè)子項(xiàng)目, 使用的范圍正在增加.
利用spring的ioc 和aop我們也可以注入我們自己的功能. 來(lái)擴(kuò)展系統(tǒng).
這是目前我對(duì)spring的一個(gè)大體了解. 記錄下來(lái)作為學(xué)習(xí)的一個(gè)小結(jié)吧.