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