定義:一個分層Java SE/ EE full-stack輕量級開源框架web
重要概念:spring
控制反轉(Inverse of Control,IOC):對組件對象控制權的轉移,從程序代碼自己轉移到外部容器,經過容器實現對象組件的裝配和管理。編程
依賴注入(Dependency Injection,DI)api
特色:框架
1,不一樣於其餘framework,其提供的是一種管理你的業務對象的方法。單元測試
2,有分層的體系結構,意味着你能夠僅僅使用它其中一部分。測試
3,它的設計是爲了幫助編寫易於測試的代碼,是使用測試驅動開發(TDD)工程的理想框架。設計
4,不會給你的工程添加對其餘框架的依賴。對象
爲何要使用Spring?接口
一、能有效組織中間層對象。
二、能消除許多工程中常見的對singleton的過多使用。
三、經過一種在不一樣應用程序和項目間一致的方法來處理配置文件。
四、可以容易培養面向接口而不是面向類的編程習慣。
五、spring的設計會讓使用它建立的應用盡量少地依賴它的api。
六、易於單元測試。
七、是EJB成爲一個實現選擇,而不是必須選擇。
八、提供一些web應用上的EJB的替代方案,如用AOP提供聲明性事務管理。
九、爲數據存儲提供了一個一致的框架,不管是使用JDBC仍是ORM產品。