- 從大小與開銷兩方面而言Spring都是輕量的。html
- 經過控制反轉(IoC)的技術達到鬆耦合的目的。web
- 提供了面向切面編程的豐富支持,容許經過容許經過分離應用的業務邏輯與系統級服務進行內聚性的開發。應用只實現業務邏輯便可,並不負責其它的系統級關注點。spring
解釋:好比說,作一個商品的管理,商品的入庫、出庫就是業務邏輯,系統服務是,好比說入庫、出庫都要統一的日誌的記錄,和事物的管理那麼這種就屬於系統服務,它是和具體的業務邏輯是無關的,不管什麼樣的業務都會使用到的服務都把它稱爲系統服務。express
- 包含並管理應用對象的配置和生命週期,這個意義上是一種容器。編程
- 將簡單的組件配置、組合成爲複雜的應用,這個意義上是框架。架構
因此Spring帶來了複雜JavaEE開發的春天!mvc
從這幅圖中咱們能夠看出來Spring的總體架構,主要分爲六大模塊框架
Core Container單元測試
核心部分分爲4大塊,spring-core, spring-beans, spring-context, spring-expression. 其中core和bean是整個框架的核心,提供了基礎的DI和IoC功能。 Context創建在core和beans模塊之上,提供一種相似JNDI且以框架的方式來操做對象的方式。Context模塊從beans模塊繼承它的功能同時增長了國際化支持,如資源綁定等,同時,Context模塊也支持JavaEE功能,如EJB,JMX和基本的遠程調用。ApplicationContext接口是context模塊的焦點。expression是一種很強大的expression language,支持在運行時查詢和操做對象的屬性,咱們會在後面的文章中舉些例子來講明spring expression language的用法。測試
AOP and instrumentation
Aop模塊提供了面向切面編程的實現,和AspectJ集成。
Messaging
Messaging是spring4新增長的模塊,包含了一部分主要的基於message的應用的實現。
Data Access/Integration
Data access顧名思義,是spring對數據層提供的支持,是功能比較豐富的模塊。提供了包括JDBC,事物,ORM,JMS等一系列實現。
Web
Web模塊主要提供面向web的一些實現,例如多文件上傳,servlet監聽器以及spring mvc方面的支持。
Test
Test模塊主要是針對spring的各個模塊作各類各樣的測試,包括單元測試、集成測試等等。
文章出自:藝意