Spring的整體架構
1、Spring架構至今已內建了20多個子產品。這些子產品主要被分如下圖所示的核心容器、資料通路/內建,、Web、AOP(面向切面程式設計)、工具、消息和測試子產品[5]:
2、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的用法。
3、AOP and instrumentation
Aop子產品提供了面向切面程式設計的實作,和AspectJ內建。
4、Messaging
Messaging是spring4新增加的子產品,包含了一部分主要的基于message的應用的實作。
5、Data Access/Integration
Data access顧名思義,是spring對資料層提供的支援,是功能比較豐富的子產品。提供了包括JDBC,事物,ORM,JMS等一系列實作。
6、Web
Web子產品主要提供面向web的一些實作,例如多檔案上傳,servlet監聽器以及spring mvc方面的支援。
7、Test
Test子產品主要是針對spring的各個子產品做各種各樣的測試,包括單元測試、內建測試等等。