本人博客文章網址:https://www.peretang.com/basic-knowledge-of-spring-framework/
Spring框架簡介
Spring , 一個開源的框架 , 由Rod Johnson創建. Spring是爲了解決企業應用開發的複雜性而創建的 , 可以讓簡單的JavaBeans/POJO來實現之前只有EJB[1]才能完成的事情. Spring還提供了大量API簡化與其他第三方框架的集成.
縱覽Spring , 你會發現Spring可以解決非常多的問題 , 但歸根到底 , 所有Spring提供的API/解決方案的理念都可以追溯到Spring最根本的理念上 "簡化Java開發" .
▲Spring=簡化Java開發
Spring策略與核心
Spring爲了降低Java開發複雜性的4大關鍵策略/核心
1. 基於POJO的輕量級和最低侵入性編程
2. 通過依賴注入和麪向接口實現鬆耦合
3. 基於切面和慣例進行聲明式編程
4. 通過切面和模版減少板式代碼
基本所有Spring的API/解決方案都可以追溯到上述的一條或多條策略中.
Spring缺點
雖然Spring能降低複雜性 , 但是當Spring發展到現在4.X , Spring已然是一個很複雜的框架.
另Spring的最初目標是一個輕量級的容器框架 , 但是發展到現在Spring4.X也已經是一個重量級框架.
最後雖然Spring是最小的侵入性 , 但是它帶給了我們最大的依耐性.
Spring模塊
Core模塊
spring-core,spring-beans : 框架的最基礎模塊,其提供了IOC和依賴注入等功能
spring-context : 提供了一種訪問對象的上下文對象
spring-context-support : 提供了將第三方庫集成到上下文中的功能
spring-expression(SPEL) : 提供了強大的表達式語言支持 , 減少工作量
AOP模塊
spring-aop : 提供了一個符合AOP規範的面向切面的API實現
spring-aspects : 提供了與AspectJ的集成
數據訪問集成模塊
spring-jdbc : 提供簡化JDBC編程的API
spring-tx : 提供簡化事務管理和編程的API
spring-orm : 提供簡化ORM規範[2]編程的API , 並提供對JPA , Hibernate的支持
spring-oxm : 提供簡化OXM規範[3]編程的API
spring-jms : 提供簡化JMS規範[4]編程的API
Web模塊
spring-web : 提供簡化基本Web功能編程的API
spring-webmvc,spring-webmvc-portlet : 提供簡化MVC[5]和RESTful[6]編程的API
spring-websocket : 提供簡化Websocket編寫的API
測試模塊
spring-test : 提供對單元測試和集成測試支持的組件 , 簡化測試用例編程的API
信息模塊
spring-messaging : 支持消息架構和協議
設備模塊
spring-instrument : 提供了在某些應用服務器中使用的類檢測支持和類加載器實現
spring-instrument-tomcat : 提供了在Tomcat中使用的類檢測支持和類加載器實現
Spring架構圖
參考
註釋
[1]這裏的EJB指的是EJB2.X,因爲從EJB3.X規範開始也可以使用POJO來實現EJB規範。
[2]對象關係映射 , 用來把對象模型表示的對象映射到基於SQL的關係模型數據庫結構中去.
[3]Object XML Mapping , 數據實體對象與XML節點之間的映射.
[4]Java消息服務 , JavaEE規範中的一員 , 負責與信息中間件(MOM)進行交互的API. 參考 : JAVAEE規範基礎知識
[5]MVC是一種使用 MVC (Model View Controller 模型-視圖-控制器) 設計創建 Web 應用程序的模式.
[6]RESTful一種軟件架構風格.