首頁 >Java >java教程 >Spring框架是什麼

Spring框架是什麼

(*-*)浩
(*-*)浩原創
2019-05-06 10:45:5424168瀏覽

Spring是一個開源框架,它是由Rod Johnson創建的,同時是為了解決企業應用開發的複雜性而創建的,Spring可以使用基本的JavaBean來完成以前只可能由EJB完成的事情。

Spring框架是什麼

本篇文章將大概介紹Spring框架的功能和模組,具體使用請看推薦課程:Java教學

Spring是一個開源框架,它由Rod Johnson創建。它是為了解決企業應用開發的複雜性而創建的。 Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和鬆散耦合的角度而言,任何Java應用都 可以從Spring中受益。

Spring是一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器框架。

輕量-從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR檔案裡發布。並且Spring所 需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的物件不依賴Spring的特定類別。

控制反轉-Spring透過一種稱作控制反轉(IoC)的技術促進了松耦合。當應用了IoC,一個物件依賴的其它物件會透過被動的方式傳 遞進來,而不是這個物件自己創建或尋找依賴物件。你可以認為IoC與JNDI相反-不是物件從容器中尋找依賴,而是容器在物件初始化時不等物件請求就主動將依賴傳遞給它。

面向切面-Spring提供了面向切面程式設計的豐富支持,允許透過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事(transaction)管理)進行內聚性的開發。應用物件只實現它們應該做的——完成業務邏輯——僅此而已。它們並不負責(甚至是意識)其它的系統級關注點,例如日誌或事務支援。

容器——Spring包含並管理應用程式物件的配置和生命週期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創建——基於一個可配置原型( prototype),你的bean可以創建一個單獨的實例或每次需要時都產生一個新的實例——以及它們是如何相互關聯的。然而,Spring不應該被混同於傳統的重量級的EJB容器,它們經常是龐大與笨重的,難以使用。

框架-Spring可以將簡單的元件配置、組合成為複雜的應用。在Spring中,應用程式物件被聲明式地組合,典型地是在一個XML檔案裡。

Spring也提供了很多基礎功能(事務管理、持久化框架整合等等),將應用邏輯的開發留給了你。

所有Spring的這些特徵使你能夠編寫更乾淨、更可管理、並且更易於測試的程式碼。它們也為Spring中的各種模組提供了基礎支援。


Spring框架由七個定義明確的模組組成

Spring框架是什麼

#如果作為一個整體,這些模組為你提供了開發企業應用程式所需的一切。但你不必將應用程式完全基於Spring框架。你可以自由地挑選適合你的應 用的模組而忽略其餘的模組。

就像你所看到的,所有的Spring模組都是在核心容器之上建構的。容器定義了Bean是如何創建、配置和管理的——更多的Spring細節。

當你配置你的應用程式時,你會潛在地使用這些類別。但是作為一名開發者,你最可能對影響容器所提供的服務的其它模組感興趣。這些模組將 會為你提供用於建立應用服務的框架,例如AOP和持久性。

核心容器

這是Spring框架最基礎的部分,它提供了依賴注入(DependencyInjection)特徵來實現容器對Bean的管理。這裡最基本的概念是BeanFactory,它是任何Spring應用的核心。 BeanFactory是工廠模式的實現,它使用IoC將應用程式配置和依賴說明從實際的應用程式碼中分離出來。

應用上下文(Context)模組

核心模組的BeanFactory使Spring成為一個容器,而上下文模組使它成為一個框架。這個模組擴展了BeanFactory的概念,增加了對國際 化(I18N)訊息、事件傳播以及驗證的支持。

另外,這個模組提供了許多企業服務,例如電子郵件、JNDI存取、EJB整合、遠端以及時序調度(scheduling)服務。也包括了對模版框 架例如Velocity和FreeMarker整合的支援。

Spring的AOP模組

Spring在它的AOP模組中提供了對面向切面程式設計的豐富支援。這個模組是在Spring應用中實現切面編程的基礎。為了確保Spring與其它 AOP框架的互用性,Spring的AOP支援基於AOP聯盟定義的API。 AOP聯盟是一個開源項目,它的目標是透過定義一組共同的介面和元件來促進AOP的使用以及不同的AOP實現之間的互用性。透過造訪他們的站點,你可以找到關於AOP聯盟的更多內容。

Spring的AOP模組也將元資料編程引入了Spring。使用Spring的元資料支持,你可以為你的原始碼增加註釋,指示Spring在何處以及如 何應用切面函數。

JDBC抽象和DAO模組

使用JDBC經常導致大量的重複程式碼,取得連線、建立語句、處理結果集,然後關閉連線。 Spring的JDBC和DAO模組抽取了這些重複代 碼,因此你可以保持你的資料庫存取代碼乾淨簡潔,並且可以防止因關閉資料庫資源失敗而引起的問題。

這個模組也在幾種資料庫伺服器給予的錯誤訊息之上建立了一個有意義的異常層。使你不用再試圖破解神秘的私有的SQL錯誤訊息!

另外,這個模組也使用了Spring的AOP模組為Spring應用中的物件提供了事務管理服務。

物件/關聯映射整合模組

對那些更喜歡使用物件/關聯映射工具而不是直接使用JDBC的人,Spring提供了ORM模組。 Spring並不試圖實現它自己的ORM解決方 案,而是為幾種流行的ORM框架提供了整合方案,包括Hibernate、JDO和iBATIS SQL映射。 Spring的事務管理支援這些ORM框架中的每一個也包括JDBC。

Spring的Web模組

Web上下文模組建立於應用上下文模組之上,提供了一個適合於Web應用的上下文。另外,這個模組也提供了一些面向服務支援。範例

如:實作檔案上傳的multipart請求,它也提供了Spring和其它Web框架的集成,例如Struts、WebWork。

Spring的MVC框架

Spring為建構Web應用提供了一個功能全面的MVC框架。雖然Spring可以很容易地與其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC對控制邏輯和業務對象提供了完全的分離。

它也允許你聲明性地將請求參數綁定到你的業務對像中,此外,Spring的MVC框架還可以利用Spring的任何其它服務,例如國際化信息與驗證。

Spring框架Web頁面亂碼問題

在做java Web 專案時,亂碼問題時常都會出現,解決方法也不盡相同,有簡單也有複雜的;如果加入了Spring框架之後就不一樣了,可 以採用Spring框架自帶的過濾器CharacterEncodingFilter,這樣可以大大減輕了我們的工作量,即簡單方便又容易理解。

以上是Spring框架是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn