1. 程式人生 > >【Spring框架學習】:初識Spring框架

【Spring框架學習】:初識Spring框架

       軟體框架

       框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件例項間互動的方法;另一種定

義認為,框架是可被應用開發者定製的應用骨架。前者是從應用方面而後者是從目的方面給出的定義。框架就是制定

一套規範或者規則(思想),程式設計師在該規範或者規則下工作。或者說就是使用別人搭好的舞臺,你來做表演。

       軟體框架,通常指的是為了實現某個業界標準或完成特定基本任務的軟體元件規範,也指為了實現某個軟體元件

規範時,提供規範所要求之基礎功能的軟體產品。

       框架的特點:

       1、半成品

       2、封裝了特定的處理流程和控制邏輯

       3、成熟的、不斷升級改進的軟體

       框架與類庫區別:

       1、框架一般是封裝了邏輯、高內聚的;類庫則是鬆散的工具的組合

       2、框架專注於某一領域; 類庫則是更通用的。

       為什麼使用框架

       1、軟體系統日趨複雜。

       2、重用度高,提高開發效率和質量。

       3、軟體設計人員要專注於對領域的瞭解,使需求分析更加充分。

       4、易於上手,能夠快速的解決問題。

       Spring框架簡介

       什麼是Spring

       Spring框架是一個分層的JavaSE/EE全站式輕量級的開源框架,為了解決企業應用開發的複雜性而建立的,但現

在已經不止應用於企業應用。Spring框架是一個以IoC(Inverse of Control 反轉控制)和AOP(Aspect Oriented

 Programming 面向切面程式設計)為核心的容器框架。

       關於上述概念的一些解釋:

       1、從大小與開銷兩方面而言Spring都是輕量級的,輕量級是相對於EJB(企業級JavaBean),Spring的出現時

為了取代EJB的臃腫、低效、脫離現實;

       2、通過控制反轉(IoC)的技術達到鬆耦合的目的;

       3、提供了面向切面程式設計的豐富支援,允許通過分離應用的業務邏輯與系統級服務進行內聚性的開發;

       4、包含並管理應用物件的配置和生命週期,這個意義上是一種容器;

       5、將簡單的元件配置、組合成為複雜的應用,這個意義上是框架;

       6、全站式開源框架:為每一個層都提供技術支援:

       伺服器端分層:表示層(web)、業務邏輯層(service)、持久層(dao)

       web層:Struts,Struts2,Spring MVC

       service層:Spring(常用於service層管理事務,不僅僅在service層)

       dao層:HIbernate、JdbcTemplate

       Spring作用

       1、使用Spring框架,提高了開發效率,不需要自己頻繁地重複的操作物件,Spring都直接替我們管理了物件;

       IoC簡化了應用系統對記憶體物件的管理,執行程式需要用到某個物件,IOC容器會即時建立,而不是事先都建立

好,優化了物件管理,節省了記憶體,使得系統能更高效的執行。IoC是通過DI(依賴注入)實現的。

       2、Spring框架對其他技術也提供了很好的介面支援,可以更好地和MyBatis、Hibernate等技術的融合;

       AOP支援各種事務的管理,比如系統的操作日期、異常和錯誤輸出,資料庫操作的各種事務操作,簡化和規範了

系統對事務的管理。

       3、Spring框架降低了軟體的耦合度,方便軟體日後的維護和升級;

       Spring能很好的與各大框架進行了整合,不用spring還要用建立一個工廠來建立物件,這個Spring相當與做了這

個工廠幫你做了建立物件的功能,還有它通過AOP幫助你管理事務,你在用Hibernate的時候如果不用Spring的時候

是不是每次都要寫事務的提交這些程式碼有了它幫你管理後你就不必去管事務提交了沒有。還有它的面向切面程式設計

(AOP)還可以在你寫要記錄日誌的時候新增一條記錄後需要在資料裡同時新增一條新增成功了或失敗的記錄那麼就

可以用Spring裡的AOP來處理,雖然不用AOP也能做但是不用Spring的AOP你就會寫很多重複的程式碼了。

       應用Spring的好處

       1、方便解耦,簡化開發

       Spring就是一個大工廠,可以將所有物件建立和依賴關係維護,交給Spring管理

       2、AOP程式設計的支援

       Spring提供面向切面程式設計,可以方便的實現物件程式進行許可權攔截、執行監控等功能

       3、宣告式事務的支援

       只需要通過配置就可以完成對事務的管理,而無需手動程式設計

       4、方便程式的測試

       SPring對JUnit4支援,可以通過註解方便的測試Spring程式

       5、方便整合各種優秀框架

       Spring不排斥各種優秀的開源框架,其內部提供了對各種優秀框架(如,Struts、HIbernate、MyBatis、

Quartz等)的直接支援。

       Spring本身跟web沒有直接關係,但它可以在web中進行應用。還可以與struts2、hibernate、mybatis進行整

合,struts2就是個web框架。

       6、降低JavaEE API的使用難度

       Spring物件JavaEE開發中非常難用的一些API(JDBC、JavaMail、遠端呼叫等),都提供了封裝,使這些API應

用難度大大降低。

       Spring體系結構

       Spring框架是一個分層架構。它包含一系列的功能要素並被分類大約20個模組,這些模組分為Core

 Container、Data Access/Integration、Web、AOP、Instrumentation和測試部分,如 Spring整體架構圖:

       

       概述幾個比較核心的概念:

       1、核心容器:核心容器提供 Spring 框架的基本功能(Spring Core)。核心容器的主要元件是 BeanFactory,它

是工廠模式的實現。BeanFactory 使用控制反轉(IOC) 模式將應用程式的配置和依賴性規範與實際的應用程式程式碼

開。

       2、Spring 上下文:Spring 上下文是一個配置檔案,向 Spring框架提供上下文資訊。Spring 上下文包括企業服

務,例如JNDI、EJB、電子郵件、國際化、校驗和排程功能。

       3、Spring AOP:通過配置管理特性,Spring AOP 模組直接將面向切面的程式設計功能整合到了 Spring 框架中。

所以,可以很容易地使 Spring 框架管理的任何物件支援AOP。Spring AOP 模組為基於 Spring 的應用程式中的對

象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 元件,就可以將宣告性事務管理整合到應用程式中。

       4、Spring DAO:JDBCDAO抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供

應商丟擲的錯誤訊息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常程式碼數量(例如開啟和關閉

連線)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。

       5、Spring ORM:Spring 框架插入了若干個ORM框架,從而提供了 ORM 的物件關係工具,其中包括JDO、

Hibernate和iBatisSQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。

       6、Spring Web 模組:Web 上下文模組建立在應用程式上下文模組之上,為基於 Web 的應用程式提供了上下

文。所以,Spring框架支援與 Jakarta Struts 的整合。Web 模組還簡化了處理多部分請求以及將請求引數繫結到域

物件的工作。

       7、Spring MVC 框架:MVC框架是一個全功能的構建 Web應用程式的 MVC 實現。通過策略介面,MVC框架

變成為高度可配置的,MVC 容納了大量檢視技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。模型由javabean

構成,存放於Map;檢視是一個介面,負責顯示模型;控制器表示邏輯程式碼,是Controller的實現。Spring框架的功

能可以用在任何J2EE伺服器中,大多數功能也適用於不受管理的環境。Spring 的核心要點是:支援不繫結到特定

 J2EE服務的可重用業務和資料訪問物件。毫無疑問,這樣的物件可以在不同J2EE 環境(Web 或EJB)、獨立應用程

序、測試環境之間重用。