转自:http://www.cnblogs.com/JSONBEAN/p/6364038.html

长期以来都在写SSM框架的项目,却未能深入理解框架的搭建原理,而只是浅薄的理解前辈的架构,然后不断套用,项目做过几个,但框架的内涵却没有把握。小编打算今天从SpringMVC的依赖分析做起,一步步进行系统化学习。

从springFramework的官方文档入手: 
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#overview-getting-started-with-spring

如上为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包导入了

最新文章

  1. 个人也能申请微信小程序获得APPID和手机测试效果
  2. 微信小程序技术分析:Mustache语法要点总结
  3. DTD文档模型和HTML基础
  4. Spring Web应用的最大瑕疵
  5. ccc array
  6. JSF 监听
  7. Cordova 3.0 + Eclipse 开发流程
  8. Eclipse修改java代码后自动重启Tomcat解决办法
  9. DateGridew导出Excel表+常见错误提示
  10. HTML&CSS基础学习笔记1.33-元素选择器
  11. vue-router之router-link
  12. Autolayout 第三方开源库
  13. Node.js JXcore 打包
  14. retrofit+rxjava封装
  15. CodeForces 632C The Smallest String Concatenation//用string和sort就好了&&string的基础用法
  16. HTML学习笔记Day13
  17. 001之IP基础对话框
  18. 持续集成工具-Jenkins 使用介绍
  19. maven配置环境变量失败解决办法
  20. andorid 数据储存、SharedPreferences存储和手机内部储存

热门文章

  1. ES5 与 ES6六大不同
  2. LeetCode979. 在二叉树中分配硬币
  3. Fiddler(二)
  4. MySQL 如何生成月份表
  5. 【PHP项目】伪静态规则
  6. 腾讯首页分辨手机端与pc端代码
  7. No module named 'PyQt5.sip'
  8. select into from 和 insert into select
  9. hdoj 1237 模拟
  10. 15、python之导入模块