[TOC]
# Spring 簡介
Spring 是一個開源的控制反轉(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是簡化企業開發。
Spring 框架除了幫我們管理對象及其依賴關系,還提供像通用日志記錄、性能統計、安全控制、異常處理等面向切面的能力,還能幫我管理最頭疼的數據庫事務,本身提供了一套簡單的 JDBC訪問實現,提供與第三方數據訪問框架集成(如 mybatis、Hibernate 等),與各種 Java EE技術整合(如 Java Mail、任務調度等等),提供一套自己的 web 層框架 Spring MVC、而且還能非常簡單的與第三方 web 框架集成。從這里我們可以認為 Spring 是一個超級粘合平臺,除了自己提供功能外,還提供粘合其他技術和框架的能力,從而使我們可以更自由的選擇到底使用什么技術進行開發。
## 為何要使用Spring?
在項目中引入spring立即可以帶來下面的好處
* 降低組件之間的耦合度,實現軟件各層之間的解耦。

* 可以使用容器提供的眾多服務,如:事務管理服務、消息服務等等。當我們使用容器管理事務時,開發人員就不再需要手工控制事務.也不需處理復雜的事務傳播。
* 容器提供單例模式支持,開發人員不再需要自己編寫實現代碼。
* 容器提供了AOP技術,利用它很容易實現如權限攔截、運行期監控等功能。
* 容器提供的眾多輔作類,使用這些類能夠加快應用的開發,如: JdbcTemplate、 HibernateTemplate。
* Spring對于主流的應用框架提供了集成支持,如:集成Mybatis、Hibernate、Struts等,這樣更便于應用的開發。