[spring源码] 小白级别的源码解析(一)
一直都在用spring,但是每次一遇到spring深入的问题,就是比较懵的状态。最近花了段时间学习了一下spring源码。
虽然工作中,一直在用到spring,可能有时候,并不会特别去关注版本号。所以先简单介绍一下,spring的版本。
当前的最新快照版本是5.0.0
稳定版本是4.3.8

就不展开一一介绍每个模块了。 想了解的可以直接去官网了解。就介绍一下常用的,也是大家关心的几个模块。
2.1Core Container
该模块包含 spring-core, spring-beans, spring-context, spring-context-support, 和 spring-expression (Spring Expression Language) .
spring-core和 spring-beans 提供了基础的功能的支持,包括ioc 和 控制反转。
spring-context spring的上下文,建立在core和beans的基础之,增加了对国际化的支持,Spring上下文支持提供集成常见的第三方库在Spring应用程序上下文。
相信大家在工作中一用到spring就会引入一段jar包, 经常会搞不懂,这些jar具体都是做什么的。下面就介绍一下spring的各个jar包之间的关系。
3.1core
core部分包含5个模块
- spring-core:依赖注入IoC与DI的最基本实现
 - spring-beans:Bean工厂与bean的装配
 - spring-context:spring的context上下文即IoC容器
 - spring-context-support
 - spring-expression:spring表达式语言
 
完整的依赖关系图。(全部引入后查看,已经存在共同依赖同一个包的关系,会存在显示不同)





3.2aop
aop部分包含4个模块
- spring-aop:面向切面编程
 - spring-aspects:集成AspectJ
 - spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器
 - spring-instrument-tomcat:针对tomcat的instrument实现
 


其他两个模块,没有依赖,不在绘画依赖关系图。
其他模块,相对明了。 不再详细展开描述。附带一张spring官网的依赖包表格。


参考:spring官网。
[spring源码] 小白级别的源码解析(一)的更多相关文章
- [spring源码] 小白级别的源码解析ioc(二)
		
之前一篇,整体描述了一下 Spring的整体概况和 jar包的介绍. 现在开始进入具体的源码解析,从本篇开始,先介绍spring的ioc容器.之前也看过一些介绍spring源码的, 有的是只讲整体的接 ...
 - [spring源码] 小白级别的源码解析IOC容器的依赖注入(三)
		
上一篇介绍了ioc容器的初始化过程,主要完成了ioc容器建立beanDefinition数据映射.并没有看到ioc容器对bean依赖关系进行注入. 接口getbean就是出发依赖注入发生的地方.下面从 ...
 - 5.2 spring5源码--spring AOP源码分析三---切面源码分析
		
一. AOP切面源码分析 源码分析分为三部分 1. 解析切面 2. 创建动态代理 3. 调用 源码的入口 源码分析的入口, 从注解开始: 组件的入口是一个注解, 比如启用AOP的注解@EnableAs ...
 - Spring系列28:@Transactional事务源码分析
		
本文内容 @Transactional事务使用 @EnableTransactionManagement 详解 @Transactional事务属性的解析 TransactionInterceptor ...
 - 小白挑战:AsyncTask源码分析
		
//AsyncTask从本质上讲,是对ThreadPool和handler的封装. 在学习线程池相关的知识时,看到书中提到AsyncTask的实现中使用到了ThreadPool,于是把源码翻了出来, ...
 - APP源码集中打包大放送!十一个千万级别APP源码随意处置!
		
小伙伴们还在一个一个苦苦寻找各类APP源码吗?此贴集中打包最常用APP的源码,你想得到的APP,这里都有! 想做商城?这里有天猫! 想做同城服务?这里有大众点评! 想做外卖?这里有饿了么! 想做视频? ...
 - spring MVC cors跨域实现源码解析
		
# spring MVC cors跨域实现源码解析 > 名词解释:跨域资源共享(Cross-Origin Resource Sharing) 简单说就是只要协议.IP.http方法任意一个不同就 ...
 - Spring源码情操陶冶-自定义节点的解析
		
本文承接前文Spring源码情操陶冶-DefaultBeanDefinitionDocumentReader#parseBeanDefinitions,特开辟出一块新地来啃啃这块有意思的骨头 自定义节 ...
 - Spring源码情操陶冶-ComponentScanBeanDefinitionParser文件扫描解析器
		
承接前文Spring源码情操陶冶-自定义节点的解析,本文讲述spring通过context:component-scan节点干了什么事 ComponentScanBeanDefinitionParse ...
 
随机推荐
- 3、LwIP协议栈规范翻译——概述
			
3.概述 像许多其他TCP/IP实现一样,分层协议设计已经成为设计lwIP实现的指南.每个协议实现为自己的模块,其中几个功能充当每个协议的入口点.尽管协议层是单独实现的,一些层却不全是,正如前面所叙述 ...
 - js 整数型数组和字符型数组相互转换
			
需求背景: 需要将 a = [1,2,3,4,5] 转换成 a = ['1','2','3','4','5'](整数型数组转换成字符型没找到直接的方法,思路就是先将数组转换成字符串,然后再将字符串转 ...
 - git pull 冲突拉取不到新的代码
			
本地文件已经有冲突或者在pull的过程中拉取的文件和本地文件冲突时,拉取不到新的代码,git pull出现报错,如下: 这个时候,如果你有两种选择,如果你需要这些改动,那个你就需要手动解决冲突,然后a ...
 - react 中的return 什么时候用小括号,什么时候用大括号啊
			
return( <div>....</div> ) return( <Component/> ) return{...} 1:html 2:react 组件 3:j ...
 - C# Newtonsoft.Json JsonSerializerSettings 全局序列化设置
			
Newtonsoft.Json.JsonSerializerSettings setting = new Newtonsoft.Json.JsonSerializerSettings(); JsonC ...
 - Spring Cloud配置中心(Config)
			
Spring Cloud配置中心(Config) Spring Cloud是现在流行的分布式服务框架,它提供了很多有用的组件.比如:配置中心.Eureka服务发现. 消息总线.熔断机制等. 配置中心在 ...
 - Java面试题整理---JVM篇
			
1.JVM运行时内存区域划分? 2.内存溢出OOM和堆栈溢出SOE的案例.原因.排查及解决? 3.常用的JVM性能监控工具? 4.JVM参数设置? 5.类加载过程? 6.JVM内存 ...
 - Linux:command not found
			
最近老是遇到command not found 这个问题,然后就上网查到什么文件底下export什么变量啊.后来次数多了,发现不对劲.后来上网查了一下,原来切换到root用户要使用su -,而不是su ...
 - Windows安装MySQL5.7.23 zip包
			
工欲善必先利其器 # 环境: Win7旗舰版 + MySQL5.7.23 # 用到的命令: mysqld --initialize -- 初识化 mysqld --install -- 添加到Wind ...
 - 【题解】Luogu P2763 试题库问题
			
原题传送门 这题很简单啊 从源点向k类题目分别连流量为所需数量的边 从每道题向汇点连一条流量为1的边(每题只能用1次) 从类型向对应的题目连一条流量为1的边 跑一遍最大流 如果最大流小于所需题目数量, ...