Spring核心技術總結一

引言java

新人入社後,發現本身真的老了,和年輕人有代溝了,雖然暫時尚未邁入而立之年。Spring核心技術總結一最近一直在學習Spring爲了避免讓本身忘記,就寫點吧!說不定對別人也有一些幫助呢!那就更好啦!數據庫

我是看了兩本Spring電子書,還有不少其餘資料纔開始敲打的。因此不少內容是照搬的,這點我要說明一下,可是全部內容自認爲仍是理解以後纔開始「忽悠」的。強烈推介《Spring in Action》,無論中文版仍是英文版都不錯。じゃ、始めましょう。(*^_^*)框架

A)好的設計比實現技術更重要工具

剛纔說了一大堆EJB的壞話,呵呵。有時候系統須要,EJB是必需的。但一般這種狀況不多。就像上面說的,咱們可能只須要其中不多或者幾項EJB服務。但仍是採用了EJB,這就是爲了技術而技術。Spring,讓你的系統按照你的需求儘可能簡單。學習


B)接口鬆散耦合測試

若是你採用EJB爲你的系統提供服務,那麼你的組件不光依賴EJB業務接口。還須要從JNDI那裏找到EJB對象,而後調用EJB接口,這不是鬆耦合的系統,相反聚合性很強。spa

而Sping呢?由Spring容器負責解決依賴關係(容器會爲你把須要的依賴注入進去),因此什麼主動尋找服務就再也不須要啦。prototype

C)易測試性設計

EJB測試須要啓動容器,Spring不須要。日誌

2)Spring是什麼?

Spring是一個開源框架。由Rod Johnson建立。爲了簡化企業及系統開發而誕生的。使用Spring,你可使用簡單的javabeans來實現那些之前只有EJB才能實現的功能。

簡單的說,Spring是一個輕量級的Ioc和AOP 容器 框架。

A)輕量級

不管從大小仍是系統開支來講,Spring都算是輕量級的。整個Spring框架也就是1M多一點的Jar包。Spring的處理開支也很是小。它是非侵入式的:基於Spring開發的系統的對象通常不依賴於Spring的類。

B)反向控制(Ioc)

使用Ioc,對象是被動接受依賴類,而不是主動去尋找。這點和JNDI剛好相反。也就是在容器實例化對象的時候主動將它的依賴注入給它。因此說Spring是經過Ioc(控制反轉)來實現依賴注入的。

Ioc意味着關於對象如何獲得它的協做對象的責任反轉了!

C)面向切面(AOP)

經過AOP,將咱們的業務邏輯從系統服務(事務管理,Log日誌)中分離出來,將咱們的關注點只放在業務邏輯部分。在須要系統服務的地點,時間再將系統服務注入進來。

D)容器

Spring是一個容器,是由於它包含而且管理系統對象的生命週期和配置。能夠經過配置來設定你的Bean是單一實例(singleton)仍是每次請求產生一個實例(prototype).

E)框架

使用簡單的組件配置組合成一個複雜的系統。也就是說,經過XML文件配置,要啥有啥!

3)Spring的7個模塊

Spring由7個模塊組成,注意:這7個模塊根據系統的需求進行取捨。

AOP模塊,O/R映射模塊,JDBC和DAO模塊,Web Context和Utility模塊,Application Context模塊,MVC模塊,核心容器和支持工具。

A)核心容器

 Spring核心容器爲Spring框架提供了基礎功能。在後面咱們會講到BeanFactory類,它是Spring框架系統的核心。BeanFactory採用工廠模式來實現Ioc.

B)Application Context模塊

若是說BeanFactory使Spring成爲容器的話,那麼Application Context模塊就是讓Spring成爲框架的緣由。它在BeanFactory基礎上進行了擴展,添加了對I18N,系統生命週期事件以及驗證的支持。另外,還提供了不少企業級服務,如電子郵件服務,JNDI訪問,EJB集成,遠程調用以及定時服務。

C)Spring的AOP模塊

是Spring應用系統開發切面的基礎。

D)JDBC抽象及DAO模塊

我記得我之前作的項目中,涉及到數據庫操做的時候,老是在程序中寫一大堆和業務不相干的代碼,什麼得到鏈接,建立語句,處理結果,關閉鏈接。雜亂不堪!!!

如今Spring的JDBC和DAO模塊把這些樣板代碼抽象出來,讓咱們的數據庫代碼變得簡單明瞭。另外,這個模塊還建立了一個數據庫異常層。

E)O/R映射集成模塊

Spring並無實現本身的ORM解決方案,它爲許多流行的ORM框架提供了支持。

F)Spring的Web模塊

它是創建在Application Context基礎之上,提供了適合Web系統的上下文。該模塊還支持多項其餘面向Web的任務。還包括對Struts的集成支持。

G)Spring MVC框架

雖然Spring能夠和其餘MVC框架(struts,Web Work)集成,但它也提供了全功能的MVC框架。

相關文章
相關標籤/搜索