Spring学习回顾(二)Spring架构模块

前言

迅速看懂理解一样新的事物,我认为最直接最快的方法是:置身事外,身临高处,纵观其全貌,细查其所有。比如,要了解一个树林里都有什么树种长势如何,不能上来就进到树林里观察。首先要置身树林之外,纵观树林全貌面积大小,了解各种树种在树林中的分布位置;然后再进入树林一一细致的观察研究。按照这样的思想,来剖析一下Spring内部构造。

1.Spring总体架构

下面是Spring官方提供的整体架构图,主要有核心容器(Core Container)、数据访问/集成(Data Access/Integration)、Web和其他模块(AOP、Aspects、Instrumentation、Messaging及Test)
Spring官方架构图

2.核心容器(Core Container)

核心容器由spring-beans、spring-core、spring-context和SqEL组成

  • Spring-core:基本组成部分,实现控制反转和依赖注入;
  • Spring-beans:工厂模式(BeanFactory)实现,前面提到的对象集中生产;
  • Spring-context:该模块的基础是core和beans,继承自beans,其中可通过ApplicationContext接口主动获取对应的Java对象。其中包括:spring-context-support实现提供对第三方库集成Spring上下文的支持,比如缓存(EhCache,Guava,JCache)、邮件(JavaMail)、调度(CommonJ,Quartz)、模板引擎(FreeMarker,JasperReports,Velocity)等。
  • SqEL:即Spring表达式语言,Spring Expression Language。

3.数据访问/集成(Data Access/Integration)

数据访问/集成由 JDBC(Java Data Base Connectivity),ORM(Object Relational Mapping),OXM(Object Xml Mapping),JMS(Java Mail Service) 和Transaction(事务)组成

  • JDBC:实现JDBC抽象层,省去开发各个数据库供应商的连接实现;
  • ORM:实现对流行的对象关系映射API的集成,使Spring轻松整合其他的ORM框架的功能;
  • OXM:实现对OXM对象映射关系的集成,如:xmlBeans;
  • JMS:实现生产(produce)和消费(consume)消息的功能集成,使Spring具有整合其他消息中间件能力;
  • Transaction(事务):实现特殊接口类及所有的 POJO 支持编程式和声明式事务管理。

4.Web模块

Web 模块由 WebSocket 、Servlet、Web和Portlet

  • WebSocket:提供了客户端和服务器端之间通信;
  • Servlet:监听器初始化IOC容器;
  • Web:提供Web应用模型的视图控制;
  • Portlet:提供用于Portlet环境的MVC实现,并反映Spring-webmvc模块的功能。

5.其他模块

除了上边三个常用模块外,还有比较重要的 AOP、Aspects、Instrumentation、Web 和Test模块

  • AOP:实现面向切面的编程思想,可以自定义拦截器和切入点,实现代码的解耦;
  • Aspects:提供对 AspectJ 的集成,AspectJ 是一个功能强大而且比较成熟的面向切面编程(AOP)框架;
  • Instrumentation 模块在一定的应用服务器中提供了类 instrumentation 的支持和类加载器的实现;
  • Messaging:提供对STOMP的支持,也支持注解编程模型;
  • Test:支持 JUnit 或 TestNG 框架的 Spring 组件测试。

结束语

至此, Spring的全貌已经一览无余,接下来就该进入Spring这个巨大的森林中,对它具有的功能学习研究,彻底的全面的消化这一“古老”框架。限于作者的水平和见解,如有不妥之处,希望不吝赐教,欢迎批评指正!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值