Spring學習(零):咱們爲何要學習Spring

序言

經過使用Spring的IoC容器,能夠對這些耦合關係(對Java代碼而言)實現一個簡單的文本化的操做;便是說經過一個或幾個XML文文件,咱們就能夠方便的對應用對象的耦合關係進行瀏覽、修改和維護,這樣能夠在很大程度上簡化應用的開發。而且,經過IoC容器實現的依賴反轉,能夠把依賴關係的管理從Java對象中解放出來交給IoC容器(即Spring框架)來完成,從而完成對象之間的關係解耦;讓本來的對象-對象關係轉化爲對象-IoC容器-對象的關係,經過這種關係來體現Spring框架對應用平臺的巨大做用。spring

對spring來講,編程

  • 一方面,它經過IoC容器來管理POJO對象,以及它們相互之間的耦合關係,使企業的信息(數據)資源能夠用簡單的Java語言來抽象和描述;
  • 另外一方面,能夠經過AOP,以動態和非侵人式的方式來加強服務的功能。

因此,咱們能夠把IoC容器和AOP模塊看作Spring的核心部分。做爲核心,它們表明了最爲基礎的底層抽象,同時也是Spring其它模塊實現的基礎。雖然做爲使用者的咱們大多數是開發者,只是在這兩個模塊的基礎上進行相關的配置和使用,可是若是可以瞭解這兩個核心模塊的設計和實現,就像瞭解Linux核心的實現同樣!毫無疑問,會讓咱們對整個平臺的瞭解更上一層樓,對平臺的認識也更爲全面和系統服務器

Spring總體架構草圖

應用場景

Spring是一個輕量級的框架。在Spring這個一站式應用平臺或框架中,其中的各個模塊除了依賴IoC容器和AOP以外,相互之間並無很強的耦合性。Spring的最終目標是簡化應用開發的編程模型。架構

它所提供的服務,能夠貫穿應用到整個軟件中,從最上層的WebUI到底層的數據操做,到其餘企業信息數據的集成,再到各類J2EE服務的使用等等。這些企業應用服務,Spring都經過其特有的IoC容器和AOP模塊實現。在實現過程當中,Spring沒有把這種複雜性轉換成本身被使用的複雜性,這點無疑是成功的,同時大大拓寬了Spring的應用場景。一方面,咱們能夠把Spring做爲一個總體來使用,另外一方面,也能夠各取所需,把Spring的各個模塊拿出來獨立使用,提供服務的具體需求。框架

於是,在對Spring的使用中,咱們看到應用不多依賴於Spring特有的API;同時,因爲spring自己的設計也是很是模塊化的,這就爲應用開發提供了EJB開發未曾提供的便利。模塊化

Spring的價值

在對Spring的應用中,Spring團隊爲咱們列舉了Spring的價值,很是值得參考:工具

  • Spring是一個非侵人性(non-invasive)框架,其目標是使應用程序代碼對框架的依賴最小化,應用代碼能夠在沒有Spring或者其餘容器的狀況下運行。
  • Spring提供了一個一致的編程模型,使應用直接使用POJO開發,從而能夠與運行環境(如應用服務器)隔離開來。
  • Spring推進應用的設計鳳格向面向對象及面向接口編程轉變,提升了代碼的重用性和可測試性。
  • Spring改進了體系結構的選擇,雖然做爲應用平臺,Spring能夠幫助咱們選擇不一樣的技術實現,好比從Mybatis切換到其餘ORM工具,從SpringMVC切換到Struts,儘管咱們一般不會這樣作,可是咱們在技術方案上選擇使用Spring做爲應用平臺,Spring至少爲咱們提供了這種可能性和選擇,從而下降了平臺鎖定的鳳險。

參考書籍:

《Spring技術內幕:深刻解析Spring架構與設計原理(第2版)》測試

相關文章
相關標籤/搜索