天天看點

五分鐘熟悉 Spring架構整體架構

簡介

  1. 目的:解決企業應用開發的複雜性
  2. 功能:使用基本的JavaBean代替EJB,并提供了更多的企業應用功能
  3. 範圍:任何Java應用

總結說,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可以将簡單的元件配置、組合成為複雜的應用。