一、各个版本源码下载
https://github.com/spring-projects/spring-framework/tags
二、Spring整体架构图
功能模块简介
1.核心模块
核心容器由以下部分组成:
- spring-core,
- spring-beans,
- spring-context
- spring-context-support
- spring-expression
spring-core、spring-beans
包括IOC和依赖注入特征。这 BeanFactory是工厂模式的复杂实现。它消除了对编程单例的需求,并允许您从实际的程序逻辑中分离出依赖关系的配置和规范。
spring-context模块
它是访问一个框架式的方式是类似于一个JNDI注册表对象的装置。Context模块从Beans模块继承其功能,并添加对国际化(例如,使用资源包),事件传播,资源加载以及通过例如Servlet容器透明创建上下文的支持。Context模块还支持Java EE功能,例如EJB,JMX和基本远程处理。该ApplicationContext接口是语境模块的焦点。
spring-context-support模块
支持将常见的第三方库集成到Spring应用程序上下文中,用于缓存(EhCache,Guava,JCache),邮件(JavaMail),调度(CommonJ,Quartz)和模板引擎(FreeMarker,JasperReports,Velocity)。
spring-expression模块
提供了一种功能强大的表达式语言,用于在运行时查询和操作对象图。它是JSP 2.1规范中指定的统一表达式语言(统一EL)的扩展。该语言支持设置和获取属性值,属性赋值,方法调用,访问数组,集合和索引器的内容,逻辑和算术运算符,命名变量以及从Spring的IoC容器中按名称检索对象。
2.数据访问模块
- 该spring-jdbc模块提供了一个JDBC -abstraction层,无需进行繁琐的JDBC编码和解析数据库供应商特定的错误代码。
- 该spring-tx模块支持 对实现特殊接口的类和所有POJO(普通旧Java对象)的类进行编程和声明式事务管理。
- 该spring-orm模块为流行的对象关系映射 API 提供了集成层 ,包括JPA, JDO和Hibernate。
- 使用该spring-orm模块,您可以将所有这些O / R映射框架与Spring提供的所有其他功能结合使用,例如前面提到的简单声明式事务管理功能。
- 该spring-oxm模块提供了一个抽象层,支持对象/ XML映射实现,如JAXB,Castor,XMLBeans,JiBX和XStream。
- 所述spring-jms模块(Java消息服务)包含用于生成和使用消息的功能。从Spring Framework 4.1开始,它提供了与spring-messaging模块的集成 。
3.AOP
- spring-aop模块提供了一个符合AOP Alliance标准的面向方面的编程实现,允许您定义,例如,方法拦截器和切入点,以干净地解耦实现应该分离的功能的代码。使用源级元数据功能,您还可以以类似于.NET属性的方式将行为信息合并到代码中。
- 单独的spring-aspects模块提供与AspectJ的集成。
- 该spring-instrument模块提供了在某些应用程序服务器中使用的类检测支持和类加载器实现。该spring-instrument-tomcat 模块包含Spring的Tomcat检测代理。
4.网络
- spring-web
- spring-webmvc
- spring-websocket
- spring-webmvc-portlet
该spring-web模块提供基本的面向Web的集成功能,例如多部分文件上载功能以及使用Servlet侦听器和面向Web的应用程序上下文初始化IoC容器。它还包含一个HTTP客户端以及Spring的远程支持的Web相关部分。
该spring-webmvc模块(也称为Web-Servlet模块)包含用于Web应用程序的Spring的模型 - 视图 - 控制器(MVC)和REST Web服务实现。Spring的MVC框架提供了域模型代码和Web表单之间的清晰分离,并与Spring Framework的所有其他功能集成在一起。
该spring-webmvc-portlet模块(也称为Web-Portlet模块)提供了在Portlet环境中使用的MVC实现,并镜像了基于Servlet的spring-webmvc模块的功能
上面的是一些常用的模块,其他还有如消息等模块,有兴趣可以了解,接下来的文章主要针对上面的模块源码进行分析。