spring源码解析——2容器的基本实现(第2版笔记)
感觉第二版写的略潦草,就是在第一版的基础上加上了新的流行特性,比如idea,springboot,但是,潦草痕迹遍布字里行间。
虽然换成了idea,但是很多截图还是eclipse的,如果不是看了第一版,很容易让人产生误解;构建遇到错误,不是想着怎么解决错误,而是把有错误的代码删了了事,呵呵。
说实话,这本书的ioc方面有些内容已经过时了,由于该书写书时是spring3,那时spring大量使用XML配置,但是从现在已经大量使用java配置和注解配置了,但是书中依然延续了第一版的xml配置,这也说明了该作者写第二版时的潦草糊弄。
项目构建 书中用的spirng版本是5.0.x,但是由于5.0.x中饮用的部分插件的网址失效了(不是墙的事,应该是换网址了),所以一直无法编译,于是改为使用5.1.x。
缺少jar包的问题,可以显下载release版本,之后把源码打成jar包 参考如下:
https://blog.csdn.net/qq_17586821/article/details/53033596
容器的基本实现,最重要的就是DefaultListableBeanFactory,这个类是整个bean加载的核心部分,是Spring注册及加载bean的默认实现。

该书重点讲解的时XML配置,所以重点解析了 XmlBeanFactory 这个类(该类在spring3.1以后已经废弃,官方推荐使用DefaultListableBeanFactory)
XmlBeanFactory是继承了DefaultListableBeanFactory,在DefaultListableBeanFactory的基础上添加了属性XmlBeanDefinitionReader,该属性的作用是从XML读取bean配置的。
XmlBeanDefinitionReader的流程分析
1。用ClassPathResource将资源文件路径转换为对应的Resource文件
2。用DocumentLoader将Resource文件转换为Document文件
3。通过DefaultBeanDefinitionDocumentReader对Document进行解析,并使用BeanDefinitionParserDelegate对Element进行解析
spring源码解析——2容器的基本实现(第2版笔记)的更多相关文章
- Spring源码解析-ioc容器的设计
Spring源码解析-ioc容器的设计 1 IoC容器系列的设计:BeanFactory和ApplicatioContext 在Spring容器中,主要分为两个主要的容器系列,一个是实现BeanFac ...
- Spring源码解析 – AnnotationConfigApplicationContext容器创建过程
Spring在BeanFactory基础上提供了一些列具体容器的实现,其中AnnotationConfigApplicationContext是一个用来管理注解bean的容器,从AnnotationC ...
- Spring源码解析-IOC容器的实现-ApplicationContext
上面我们已经知道了IOC的建立的基本步骤了,我们就可以用编码的方式和IOC容器进行建立过程了.其实Spring已经为我们提供了很多实现,想必上面的简单扩展,如XMLBeanFacroty等.我们一般是 ...
- Spring源码解析-IOC容器的实现
1.IOC容器是什么? IOC(Inversion of Control)控制反转:本来是由应用程序管理的对象之间的依赖关系,现在交给了容器管理,这就叫控制反转,即交给了IOC容器,Spring的IO ...
- Spring源码解析-Web容器启动过程
Web容器启动过程,主要讲解Servlet和Spring容器结合的内容. 流程图如下: Web容器启动的Root Context是有ContextLoaderListener,一般使用spring,都 ...
- Spring源码解析 - AbstractBeanFactory 实现接口与父类分析
我们先来看类图吧: 除了BeanFactory这一支的接口,AbstractBeanFactory主要实现了AliasRegistry和SingletonBeanRegistry接口. 这边主要提供了 ...
- spring 源码解析
1. [文件] spring源码.txt ~ 15B 下载(167) ? 1 springн┤┬вио╬Ш: 2. [文件] spring源码分析之AOP.txt ~ 15KB 下载( ...
- Spring源码解析系列汇总
相信我,你会收藏这篇文章的 本篇文章是这段时间撸出来的Spring源码解析系列文章的汇总,总共包含以下专题.喜欢的同学可以收藏起来以备不时之需 SpringIOC源码解析(上) 本篇文章搭建了IOC源 ...
- Spring源码解析之BeanFactoryPostProcessor(三)
在上一章中笔者介绍了refresh()的<1>处是如何获取beanFactory对象,下面我们要来学习refresh()方法的<2>处是如何调用invokeBeanFactor ...
随机推荐
- hdu 1007 Quoit Design 分治求最近点对
Quoit Design Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- HDU1724 Ellipse
Math is important!! Many students failed in 2+2’s mathematical test, so let's AC this problem to mou ...
- udp 多播
先来了解下UDP UDP 是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一 ...
- AC日记——最短路 洛谷 P2384
题目背景 狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗? 他会给你100000000000000000000000000000000000%10金币w ...
- LA 3708 Graveyard
题目链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show ...
- 分享Kali Linux 2017年第12周镜像文件
分享Kali Linux 2017年第12周镜像文件 Kali Linux官方于3月19日发布2017年的第12周镜像.这次维持了11个镜像文件的规模.默认的Gnome桌面的4个镜像,E17.KDE. ...
- 东方14ACM小组 15:Challenge 11
Challenge 11 查看 提交 统计 提问 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 262144kB 描述 给一个长为N的数列,有M次操作,每次操作是 ...
- IntelliJ IDEA 常用快捷键总结
个人使用频率的高低排序: Alt+enter 代码提示 Alt+7 查看类的方法 Alt+insert 生成get和set方法 ...
- RabbitMQ 延迟队列,消息延迟推送
目录 应用场景 消息延迟推送的实现 测试结果 应用场景 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货.在我们签收商品后,物流系统会在七天后延时发送一个消息给 ...
- SQL-基础学习3--通配符:LIKE,%,(_); 拼接:+,||,concat;
第六课 用通配符进行过滤 6.1 LIKE操作符 通配符本身实际上是SQL的WHERE子句中有特殊含义的字符,SQL支持几种通配符.为在搜索子句中使用通配符,必须使用LIKE操作符.LIKE指示DB ...