昨天,有人問我對(duì)Spring的理解,總結(jié)一下:
Spring現(xiàn)在已經(jīng)覆蓋系統(tǒng)各個(gè)層次,在web層,有Spring Web、Spring Webflow,在業(yè)務(wù)邏輯層,有Spring Core,在數(shù)據(jù)持久層,Spring整合了Ibatis(SQL Mapping)、Hibernate(ORM)、NOSQL,在集成層,Spring有Spring Integration,還有針對(duì)特定場(chǎng)景的解決方案,如Spring batch、Spring Message、Spring Security、Spring Social等等。
Spring Core是一個(gè)IOC容器,負(fù)責(zé)對(duì)象的生命周期管理,正因?yàn)槠湄?fù)責(zé)了對(duì)象的生命周期管理,Spring可以通過Proxy和AOP等技術(shù)在對(duì)象創(chuàng)建和調(diào)用的時(shí)候玩一把魔術(shù),如:動(dòng)態(tài)為對(duì)象的調(diào)用植入一些代碼,使得開發(fā)人員可以把業(yè)務(wù)邏輯無關(guān)的調(diào)用系統(tǒng)服務(wù)的邏輯切面化,實(shí)現(xiàn)聲明式配置。另外,Spring還負(fù)責(zé)了對(duì)象的組裝,使得面向接口的編程更為簡(jiǎn)單,省去很多Factory邏輯。
其它方案都可以說是基于Spring Core的,面向特定應(yīng)用場(chǎng)景的解決方案,不多說。