Spring mvc 4系列教程(一)

1、Spring框架概覽

Spring框架是一種輕量級、一站式解決企業級應用的解決方案。不只如此,Spring的模塊化的特色,可使你只引用所須要的部分,而無需引用所有。你可使用控制反轉容器(IoC container)、Hibernate集成代碼、JDBC抽象層。Spring支持事務管理聲明、RMIWeb Service實現遠程調用。它可以所有支持MVC框架的所有特性,且能顯示集成AOP到代碼中。java

Spring的設計是非侵入式的(non-intrusive),即領域(domain)邏輯代碼一般不依賴於框架自己。如今,已經有數據訪問技術和Spring的庫出現,來支持集成層(數據訪問層),而且容易使用。web

1.開始使用Spring

這一系列會包含Spring框架的所有特性的詳細信息。若是想快速瞭解Spring,能夠訪問https://spring.io/guides spring

2.Spring框架介紹

Spring是一種java平臺,其提供了豐富的基礎組件(infrastructure),來支持java應用的開發。Spring提供了組件,可讓你更關注於應用自己。數據庫

2.1依賴注入(Dependency Injection)和控制反轉(Inversion of Control

先介紹一個小背景:Martin Fowler曾在2004他的我的網站提出了關於控制反轉IoC的一個問題:反轉的是控件的什麼方面?他建議將此修改爲一個更好的不言而喻的名字,即後來提出的依賴注入express

雖然java平臺提供了豐富的函數來支持應用開發,但缺乏可以將這些基本構件打包成總體的方式。固然,可使用Factory,Abstract Factory,BuilderDecoratorand Service Locator來組成不一樣的類和對象,但這些模式是很是簡單定式的(指定名字、描述及何處使用等),而且還須要開發者本身去實現。編程

Spring框架的IoC解決了這一問題,它提供了將不一樣的組件集成到應用中的一種方法。許多機構和組織都使用Spring框架構件強壯的、持久的應用。服務器

2.2模塊Modules

Spring框架大約由20種模塊組成,被分紅如下幾大類:核心容器(Core Container)、數據訪問集成(Data Access/Integration)、Web、面向切面編程(Aspect Oriented Programming)、工具(Instrumentation)、消息和測試。以下圖所示:websocket

 

下面將會詳細介紹每一個組件:架構

核心容器:mvc

包含了spring-core, spring-beans, spring-context, and springexpression(Spring Expression Language)模塊。

spring-core 和 spring-beans提供了Spring的基礎功能,包含控制反轉和依賴注入。BeanFactory是工廠模式的複雜實現,能夠將依賴的配置和聲明從程序邏輯中分離開來。

spring-context創建在corebeans的基礎上,是相似JNDI的一種訪問對象的方式。spring-context模塊繼承了beans模塊的特性,而且增長了國際化(例如使用資源包)、事件傳播(event propagation)、資源加載、上下文的透明建立(transparent

creation of contexts)。Context也支持JAVA EE的特性,例如EJBJMX和基礎的遠程調用。ApplicationContext是context模塊的重點。

spring-expression爲查詢和操做對象提供了豐富的表達式語言(Expression Language)。它是統一表達式語言(unified expression language)的擴展。這種語言支持屬性值的getset,屬性賦值,方法調用,命名變量和檢索對象。

面向切面編程(AOP)和工具(Instrumentation):

spring-aop提供了面向切面的實現方法,容許定義方法攔截器和切入點。spring-aspects模塊集成了AspectJ。

spring-instrument提供了類工具的支持和應用服務器的類裝載器的實現。

消息:

Spring 4包含Message,MessageChannel,MessageHandler等。

數據訪問集成(Data Access/Integration):

包含JDBC,ORM,OXM,JMS和事務模塊。

spring-jdbc提供了JDBC數據庫抽象層,減小了冗餘的JDBC代碼的編寫,也不用解析各數據庫廠商的錯誤規範。

Web:

包含spring-web,,spring-webmvc,,spring-websocket,springwebmvc-Portlet模塊。

spring-web模塊提供了基本的面向web集成的特性,例如多文件上傳功能、IoC容器的實例化。也包含了Spring遠程支持中web相關的部分。

spring-webmvc模塊(即Web-Servlet模塊)包含了MVC的實現,使得web和領域模塊分離。

spring-webmvc-portlet模塊(即Web-Portlet模塊)提供了在Portlet中的MVC實現。

Test:

支持Spring框架的單元測試和集成測試。

 

【未完待續】

 

參考資料:《Spring Framework Reference Documentation 4.1.1.RELEASE

相關文章
相關標籤/搜索