Spring | 简介(下)
Spring 版本历史
从源代码上面目前可以找到最老的一个版本0.9 最后修改日期为 2003-06-26,当前最新的版本为 5.2.6.RELEASE,代码更新为13天前。Spring 第一个版本 距离目前已经有17年了。并且Spring 目前还具有强大的生命力,作为一个java 开发人员天天使用的框架,我们应该深入学习它。Spring 也可以算是业务开发开发人员谋生的一个工具。
简单看下Spring 历史版本项目结构
0.9 版本
![](https://img.haomeiwen.com/i1228444/418a712ea183a4c3.png)
3.0.x 版本
![](https://img.haomeiwen.com/i1228444/adaf7e0087232d09.png)
最新版本
![](https://img.haomeiwen.com/i1228444/c7c2491d2eca0281.png)
Spring 架构设计与功能介绍
Spring 架构设计以3.0.x 为基础
![](https://img.haomeiwen.com/i1228444/6a089883504c82d9.png)
功能详细介绍见 :spring-3.0.x-overview
Spring 项目详见: spring-projects
Spring 组件丰富并且复杂,我们先只关注它核心的部分Ioc Core Container 和AOP 部分。
Core Container 功能边界
Core : 提供工具类,为Ioc (beans) ,Aop 提供基础技术
beans :实现 Ioc 功能。解析bean 配置和依赖关系,并且提供获取bean 的接口。
Context :将 Ioc 与应用集成,默认对应用中所有beans 进行创建和依赖注入,是beans 功能的一个加强。核心类 ApplicationContext使用了装饰模式。
Expression Language : 提供一种自定义语法,对对象属性导航和查询的功能。Spring 对EL 进行解释执行。
AOP 功能边界
依赖beans ,Context 。提供了代理的技术实现,以及对beans ,和context 的集成。将aop bean 添加到 beans 容器中去。
虽然17年过去了,spring 核心思想和组件功能的划分没有发生变化。只变化了项目的组织形式,以及对功能实现的加强,已满足更多的业务场景。
后面章节看下不同版本对实现IOC 和AOP 是怎么变化的。