spring框架學習
1,什麼是spring框架
spring是J2EE應用程式框架,是輕量級的IoC和AOP的容器框架,主要是針對javaBean的生命週期進行管理的輕量級容器,可以單獨使用,也可以和Struts框架,ibatis框架等組合使用。
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環境。