Spring教程(一):全面闡釋Spring及其各項功能

來源:互聯網
上載者:User

Spring是什麼~春天!哈哈~

Spring是一個開源的 控制反轉(Inversion of Control ,IoC)和 面向切面(AOP)的 容器架構.它的主要目得是 簡化企業開發.

那好,那到底什麼是控制反轉呢?

先來看一段代碼:

public class PersonServiceBean {
private PersonDao personDao = new PersonDaoBean();

public void save(Person person){
personDao.save(person);
}
}

lPersonDaoBean 是在應用內部建立及維護的。

l所謂控制反轉就是應用本身不負責依賴對象的建立及維護,依賴對象的建立及維護是由外部容器負責的。這樣控制權就由應用轉移到了外部容器,控制權的轉移就是所謂反轉。

當我們把依賴對象交給外部容器負責建立,那麼PersonServiceBean 類可以改成如下:

public class PersonServiceBean {
private PersonDao personDao ;
//通過構造器參數,讓容器把建立好的依賴對象注入進PersonServiceBean,當然也可以使用setter方法進行注入。
public PersonServiceBean(PersonDao personDao){
this.personDao=personDao;
}
public void save(Person person){
personDao.save(person);
}
}

所謂依賴注入(Dependency Injection)就是指:在運行期,由外部容器動態地將依賴對象注入到組件中。

為何要使用Spring?

1.降低組件之間的耦合度,實現軟體各層之間的解耦。

2.可以使用容器提供的眾多服務,如:交易管理服務、Message Service等等。當我們使用容器管理事務時,開發人員就不再需要手工控制事務.也不需處理複雜的事務傳播。

3.容器提供單例模式支援,開發人員不再需要自己編寫實現代碼。

4.容器提供了AOP技術,利用它很容易實現如許可權攔截、運行期監控等功能。

5.容器提供的眾多輔作類,使用這些類能夠加快應用的開發,如: JdbcTemplate、 HibernateTemplate。

6.Spring對於主流的應用程式框架提供了整合支援,如:整合Hibernate、JPA、Struts等,這樣更便於應用的開發。

7.……等等

輕量級與重量級概念的劃分

spring屬於輕量級架構,還是重量架構?其實劃分一個應用是否屬於輕量級還是重量級,主要看它使用了多少服務.使用的服務越多,容器要為普通java對象做的工作就越多,必然會影響到應用的發布時間或者是運行效能

對於spring容器,它提供了很多服務,但這些服務並不是預設為應用開啟的,應用需要某種服務,還需要指明使用該服務,如果應用使用的服務很少,如:只使用了spring核心服務,那麼我們可以認為此時應用屬於輕量級的,如果應用使用了spring提供的大部分服務,這時應用就屬於重量級。目前EJB容器就因為它預設為應用提供了EJB規範中所有的功能,所以它屬於重量級。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.