原文出處:http://blog.csdn.net/lishuangzhe7047/article/details/20740209
1,什麼是spring框架
spring是J2EE應用程序框架,是輕量級的IoC和AOP的容器框架,主要是針對javaBean的生命週期進行管理的輕量級容器,可以單獨使用,也可以和Struts框架,ibatis框架等組合使用。
2,架構概述
1)IoC(Inversion of Control)控制反轉,對象創建責任的反轉,在spring中BeanFacotory是IoC容器的核心接口,負責實例化,定位,配置應用程序中的對象及建立這些對象間的依賴。XmlBeanFacotory實現BeanFactory接口,通過獲取xml配置文件數據,組成應用對象及對象間的依賴關係。
spring中有三種注入方式,一種是set注入,一種是接口注入,另一種是構造方法注入。
2)AOP面向切面編程
aop就是縱向的編程,如下圖所示,業務1和業務2都需要一個共同的操作,與其往每個業務中都添加同樣的代碼,不如寫一遍代碼,讓兩個業務共同使用這段代碼。
spring中面向切面變成的實現有兩種方式,一種是動態代理,一種是CGLIB,動態代理必須要提供接口,而CGLIB實現是有繼承。
3,爲什麼使用spring框架
在不使用spring框架之前,我們的service層中要使用dao層的對象,不得不在service層中new一個對象。如下:
存在的問題:層與層之間的依賴。
使用框架後:
service層要用dao層對象需要配置到xml配置文件中,至於對象是怎麼創建的,關係是怎麼組合的都交給了spring框架去實現。
4,框架優點
輕量級的容器框架沒有侵入性
使用IoC容器更加容易組合對象直接間關係,面向接口編程,降低耦合
Aop可以更加容易的進行功能擴展,遵循ocp開發原則
創建對象默認是單例的,不需要再使用單例模式進行處理
5,缺點:業務功能依賴spring特有的功能,依賴與spring環境。