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