長期以來都在寫SSM框架的項目,卻未能深入理解框架的搭建原理,而只是淺薄的理解前輩的架構,然後不斷套用,項目做過幾個,但框架的內涵卻沒有把握。小編打算今天從SpringMVC的依賴分析做起,一步步進行系統化學習。
從springFramework的官方文檔入手。
如上為spring框架的的組件構成圖。
一、核心部分Core Container,
由spring-core, spring-beans, spring-context, spring-context-support, 和spring-expression 構成。
1.spring-core, spring-beans提供控制反轉和依賴注入功能,
2.spring-context類似jndi注冊處,提供資源綁定加載,事件廣播,還有EJB, JMX, 和basic remoting等javaEE特征
3.spring-context-support提供第三方庫集成到spring應用,如緩存 caching (EhCache, Guava, JCache), 郵件mailing (JavaMail), 計劃任務scheduling
(CommonJ, Quartz) 和模板引擎template engines (FreeMarker, JasperReports, Velocity)
4.spring-expression 類似EL語言,是對EL的一種擴展
二、Aop和Instrumentation部分,
由spring-aop,spring-aspects,spring-instrument,spring-instrument-tomcat構成。
1.spring-aop允許開發者定義方法攔截器和切點
2.spring-aspects用於aspectj面向切面編程的集成,
3.spring-instrument用於集成特定容器,
4.spring-instrument-tomcat提供tomcat的集成
三、Messaging部分,
由spring-messaging構成。
spring-messaging與一些基於消息的應用的集成,提供一些消息相關的注解
四、The Data Access/Integration部分,
由spring-jdbc,spring-tx,spring-orm,spring-oxm,spring-jms構成。
1.spring-jdbc使你免於編寫數據庫連接代碼
2.spring-tx提供事務管理,
3.spring-orm允許開發者使用O/R對象關系映射框架,和上面提到的事務管理,
4.spring-oxm允許將spring-orm抽象成XML映射,即以xml文件來描述映射,
5.spring-jmsJAVA消息服務,生成和消費消息,與spring-messaging集成
五、WEB層,
由spring-web, spring-webmvc, spring-websocket, spring-webmvc-portlet構成 。
1.spring-web包含http客戶端,多文件上傳,利用監聽器進行ioc容器初始化,提供應用上下文等功能
2.spring-webmvc提供MVC和REST WEB服務實現
3.spring-webmvc-portlet允許spring-webmvc用於Portlet組件環境(插件式管理)
通過以上對spring框架各個模塊的解讀,大家就可以根據自己的項目需求進行相應的jar包導入了
SpringMVC+MyBatis集成配置 http://www.linuxidc.com/Linux/2016-09/135212.htm
SpringMVC總結篇 http://www.linuxidc.com/Linux/2016-06/132659.htm
Spring+SpringMVC企業快速開發架構搭建 http://www.linuxidc.com/Linux/2015-09/122942.htm
SpringMVC的亂碼處理 http://www.linuxidc.com/Linux/2015-07/120542.htm
SpringMVC詳細示例實戰教程 http://www.linuxidc.com/Linux/2015-06/118461.htm
SpringMVC錯誤頁面配置 http://www.linuxidc.com/Linux/2016-12/138097.htm
SpringMVC 異常處理 http://www.linuxidc.com/Linux/2015-06/119049.htm
SpringMVC框架入門配置 IDEA下搭建Maven項目 http://www.linuxidc.com/Linux/2016-09/134918.htm
SpringMVC自定義參數綁定用戶信息 http://www.linuxidc.com/Linux/2017-01/139676.htm
基於session 的SpringMVC 國際化 http://www.linuxidc.com/Linux/2017-01/139660.htm
SpringMVC4 注解配置實例 http://www.linuxidc.com/Linux/2017-01/139642.htm