韓夢飛沙 韓亞飛 313134555@qq.com yue31313 han_meng_fei_sha
Spring是一個開源的控制反轉(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是簡化企業開發.
什么是 IOC 控制反轉 ?
public class PersonServiceBean {
private PersonDao personDao = new PersonDaoBean();
public void save(Person person){
personDao.save(person);
}
}
PersonDaoBean 是在應用內部創建及維護的。所謂控制反轉就是應用本身不負責依賴對象的創建及維護,依賴對象的創建及維護是由外部容器負責的。這樣控制權就由應用轉移到了外部容器,控制權的轉移就是所謂反轉。
什么是依賴注入?
當我們把依賴對象交給外部容器負責創建,那么PersonServiceBean 類可以改成如下:
public class PersonServiceBean {
private PersonDao personDao ;
//通過構造器參數,讓容器把創建好的依賴對象注入進PersonServiceBean,當然也可以使用setter方法進行注入。
public PersonServiceBean(PersonDao personDao){
this.personDao=personDao;
}
public void save(Person person){
personDao.save(person);
}
}
所謂依賴注入就是指:在運行期,由外部容器動態地將依賴對象注入到組件中。
在項目中引入spring立即可以帶來下面的好處
降低組件之間的耦合度,實現軟件各層之間的解耦。
可以使用容器提供的眾多服務,如:事務管理服務、消息服務等等。當我們使用容器管理事務時,開發人員就不再需要手工控制事務.也不需處理復雜的事務傳播。
容器提供單例模式支持,開發人員不再需要自己編寫實現代碼。
容器提供了AOP技術,利用它很容易實現如權限攔截、運行期監控等功能。
容器提供的眾多輔作類,使用這些類能夠加快應用的開發,如: JdbcTemplate、 HibernateTemplate。
Spring對於主流的應用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,這樣更便於應用的開發。