關於Spirng框架個人總結

    -

一:Spring是什麼

Spring是一個開源框架,pring使用基本的JavaBean來完成以前只可能由EJB(爲了服務集羣、分佈式應用的)完成的事情。然而,Spring的用途不僅限於服務器端的開發。

簡單來說,Spring是一個輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架。

按我的理解來說,就是Spring是一個管理着javabean的容器,我們把平時創建、維護類實例的操作給javabean來做(一個方面),這就是控制反轉。

Spring的好處:
1.降低組件之間的耦合度,實現軟件各層之間的解耦。
2.可以使用容器提供的衆多服務,如:事務管理服務、消息服務等。當我們使用容器管理事務時,開發人員就不再需要手工控制事務,也不需處理複雜的事務傳播。
3.容器提供單例模式支持,開發人員不再需要自己編寫實現代碼。
4.容器提供了AOP技術,利用它很容易實現如權限攔截、運行期監控等功能。
5.容器提供衆多輔助類,使用這些類能夠加快應用的開發,如:JdbcTemplate、HibernateTemplate
6.Spring對主流應用框架提供了集成支持,如:集成Hibernate、JPA、Struts等便於應用開發。

二:模塊

這裏寫圖片描述

這是Spring框架的概覽圖了,但是實際上,我們剛開始開發,只是需要哪一塊用哪一塊導哪一塊的包,接下來簡單的看看每一塊

1.核心容器(core):他裏面有一個BeanFactory(就是bean工廠,他很重要!),是最基礎也是每個模塊所必須的部分,他把我們平時創建、維護類實例的操作轉給了Spring容器,實現了把應用配置和實際的代碼分離出來了。

2.應用上下文(Context)模塊:核心模塊的BeanFactory使Spring成爲一個容器,而上下文模塊使它成爲一個框架。這個模塊擴展BeanFactory的概念,增加了對國際化(I18N)消息、事件傳播以及驗證的支持。 另外,這個模塊提供了許多企業服務,例如電子郵件、JNDI訪問、EJB集成、遠程以及時序調度(scheduling)服務。也包括了對模版框架例如Velocity和FreeMarker集成的支持。

3.Spring的AOP模塊:面向切面編程的概念,先來個淺顯的例子,我們在睡覺前都要閉眼睛,每次睡覺前的閉眼睛這個舉動都是一樣的,那我們是不是可以把閉眼睛這個舉動截取出來,當作一個切面;

將程序中的交叉業務邏輯(公用代碼)提取出來,稱爲切面,
將這些切面動態的織入到目標對象,生成一個新的代理對象的過程;
把程序劃分爲兩部分:
1) 通用的交叉業務,公用的代碼(日誌,事務,安全,緩存);
2) 具體的業務邏輯處理代碼;
將切面動態的織入到業務代碼中;

4.JDBC抽象和DAO模塊
使用JDBC經常導致大量的重複代碼,取得連接、創建語句、處理結果集,然後關閉連接。Spring的JDBC和DAO模塊抽取了這些重複代碼,因此你可以保持你的數據庫訪問代碼乾淨簡潔,並且可以防止因關閉數據庫資源失敗而引起的問題。
這個模塊還在幾種數據庫服務器給出的錯誤消息之上建立了一個有意義的異常層。使你不用再試圖破譯神祕的私有的SQL錯誤消息!
另外,這個模塊還使用了Spring的AOP模塊爲Spring應用中的對象提供了事務管理服務。

5.ORM模塊-對象/關係映射集成模塊
對那些更喜歡使用對象/關係映射工具而不是直接使用JDBC的人,Spring提供了ORM模塊。Spring並不試圖實現它自己的ORM解決方案,而是爲幾種流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATIS SQL映射。Spring的事務管理支持這些ORM框架中的每一個也包括JDBC。

6.Spring的Web模塊
Web上下文模塊建立於應用上下文模塊之上,提供了一個適合於Web應用的上下文。另外,這個模塊還提供了一些面向服務支持。例如:實現文件上傳的multipart請求,它也提供了Spring和其它Web框架的集成,比如Struts、WebWork。

7.Spring的MVC框架
Spring爲構建Web應用提供了一個功能全面的MVC框架。雖然Spring可以很容易地與其它MVC框架集成,例如Struts,但Spring的MVC框架使用IOC對控制邏輯和業務對象提供了完全的分離。
它也允許你聲明性地將請求參數綁定到你的業務對象中,此外,Spring的MVC框架還可以利用Spring的任何其它服務,例如國際化信息與驗證。

名詞解釋:

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

依賴注入(DI):在運行期,由外部容器動態地將依賴對象注入到組件中。

輕量級與重量級:劃分一個應用屬於輕量級還是重量級,主要看它使用了多少服務,使用服務越多,容器要爲java對象做的工作就越多,必然會影響到應用的發佈時間或運行性能。Spring容器提供了很多服務,但這些服務默認是關閉的,當應用需要某種服務的時候,還需要之名將使用該服務,spring默認只使用了spring的核心服務,所以是輕量級的,如果應用使用了spring的大部分服務,則爲重量級的。

Spring帶來了複雜的J2EE開發的春天。它的核心是輕量級的IoC容器,它的目標是爲J2EE應用提供了全方位的整合框架,在Spring框架下實現多個子框架的組合,這些子框架之間可以彼此獨立,也可以使用其它的框架方案加以代替,Spring希望爲企業應用提供一站式(one-stop shop)的解決方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章