天天看點

Spring生态系統(Spring可能大家都在用,很少去關注整體架構)

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的各個子產品做各種各樣的測試,包括單元測試、內建測試等等。