1.springCore模块的组成
java程序,通过jar库,将众多的代码块(类资源)组合在一起,最终完成我们需要的功能。 通过查看项目的依赖情况,可以大致的推断该项目应该会具有哪些相应的能力。
spring5是优秀的开源框架spring的第五代版本,已经有发行版,可用于生产,它的依赖如下:
浏览下来,感觉最重要的特性是,rxjava响应式编程 以及 基于 netty的 AIO通信;
2.springCore模块对Annotation的支持
注解是javaEE5.0开始引入的,于此同时引入的有 反射机制等,该版本也是java语言里程碑版本,标识着语言到成熟。
注解 与 java的 类 以及 对象 有一个最大的区别是,它不支持继承体系。 当要对注解进行操作时,颇为不便,spirng提供了相关的API用于简化操作:
其中的:"融合"注解,便是解决 注解无法继承的一个解决思路。
3.springCore模块对环境的支持
我们日常经常使用到的Environment接口,其实质为:PropertyResolver,可译为 属性解析器.
4.springCore模块对io的支持:
5.springCore模块对编码提供的支持
6.springCore模块对序列化的支持
7.springCore模块对转换器提供的支持
8.springCore模块对任务的支持
9.springCore模块对类型的支持
10.spirngCore模块提供的重要接口:
11.springCore模块提供的重要工具:
12.springCore模块对cglib的支持:
需要注意的是,spring仅仅在修改了部分(极少) AspectJ库的相应cglib的类,大部分的类均由Aspect厂商提供。 但是,我们实际时能够看到,在spring的源码中,是没有相应的类的。 这是因为,AspectJ的很多类 是包私有的,spring源码在打包时,通过插件将相应的类混入到了org.springframe的包中。
13.备注
这些接口的实现类,仅限于Core模块,很多的实现均在子模块,且较为复杂,如果一直追溯便极容易迷失。因此,这里是以模块为单位,进行查看。
源码查看时,并未选择遍历每一个具体的类,而是以接口为思路进行展开,更容易理解设计思路。