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一個對象。如下:
//dao层对象 public class UserDao{ publicvoid insert(User user){} } //service层对象 public classUserService{ publicvoid insert(User user){ UserDaouserdao = new UserDao(); userdao.insert(user); } }
存在的問題:層與層之間的依賴。
使用框架後:
//dao层对象 public class UserDao{ publicvoid insert(User user){} } //service层对象 public classUserService{ privateUserDao userdao; publicUserDao getUserdao() { returnuserdao; } publicvoid setUserdao(UserDao userdao) { this.userdao= userdao; } publicvoid insert(User user){ userdao.insert(user); } }
service層要用dao層物件需要設定到xml設定檔中,至於物件是怎麼建立的,關係是怎麼組合的都交給了spring框架去實作。
4,框架優點
輕量級的容器框架沒有侵入性
使用IoC容器更加容易組合對象直接間關係,面向接口編程,降低耦合
Aop可以更加容易的進行功能擴展,遵循ocp開發原則
建立物件預設是單例的,不需要再使用單例模式進行處理
5,缺點:業務功能依賴spring特有的功能,依賴與spring環境。
以上就是spring框架學習(一)的內容,更多相關內容請關注PHP中文網(www.php.cn)!