prepareRefresh()方法源码探究
该方法目的是做刷新上下文前的准备工作:
首先清空bean扫描器map中的内容,然后调用父类的prepareRefresh方法:

父类的准备刷新方法,主要做了3个工作:
1.简单的标志赋值---->2.初始化属性源---->3.验证必须的属性是否都有

其中初始化属性源,主要工作是:判断servletContext和servletConfig是否存在,如果存在就将它们添加到属性源中,源码如下:

而验证必须的属性,则简单,因为有一个专门的属性集盛放的是必须属性,验证的过程是将其打开,查看每个属性是否有值,仅此而已,源码如下:

如果有一个属性为空,就抛异常!
总结:准备刷新主要做了三方面工作:
1.清空bean扫描器map中已有的bean
2.检查servletContext和servletConfig是否存在,如果存在,将他们添加到环境对象的属性源中.
3.验证必须的属性都存在.
prepareRefresh()方法源码探究的更多相关文章
- getOrCreateEnvironment()方法源码探究
该方法目的是创建一个环境对象,并且根据环境类型,自动判断是创建web环境对象,还是标准非web环境对象. 首先该方法源于prepareEnvironment准备环境: 然后进入该方法源码: 可以发现: ...
- prepareRefresh方法源码跟踪
看这篇文章之前可以先了解之前的跟踪流程,https://www.jianshu.com/p/4934233f0ead 代码过宽,可以shift + 鼠标滚轮 左右滑动查看 AbstractApplic ...
- refreshContext(context)方法源码探究
该方法目的是刷新应用上下文,是容器启动最主要的方法,其实现是一个模板方法,内容巨大,所以先看模板方法都做了哪些事,然后再细看每个方法的实现机制. refreshContext(context)方法首先 ...
- spring-cloud-sleuth+zipkin源码探究
1. spring-cloud-sleuth+zipkin源码探究 1.1. 前言 粗略看了下spring cloud sleuth core源码,发现内容真的有点多,它支持了很多类型的链路追踪, ...
- spring-boot-2.0.3之quartz集成,数据源问题,源码探究
前言 开心一刻 着火了,他报警说:119吗,我家发生火灾了. 119问:在哪里? 他说:在我家. 119问:具体点. 他说:在我家的厨房里. 119问:我说你现在的位置. 他说:我趴在桌子底下. 11 ...
- Vue源码探究-全局API
Vue源码探究-全局API 本篇代码位于vue/src/core/global-api/ Vue暴露了一些全局API来强化功能开发,API的使用示例官网上都有说明,无需多言.这里主要来看一下全局API ...
- Vue源码探究-事件系统
Vue源码探究-事件系统 本篇代码位于vue/src/core/instance/events.js 紧跟着生命周期之后的就是继续初始化事件相关的属性和方法.整个事件系统的代码相对其他模块来说非常简短 ...
- Vue源码探究-状态初始化
Vue源码探究-状态初始化 Vue源码探究-源码文件组织 Vue源码探究-虚拟DOM的渲染 本篇代码位于vue/src/core/instance/state.js 继续随着核心类的初始化展开探索其他 ...
- Vue源码探究-源码文件组织
Vue源码探究-源码文件组织 源码探究基于最新开发分支,当前发布版本为v2.5.17-beta.0 Vue 2.0版本的大整改不仅在于使用功能上的优化和调整,整个代码库也发生了天翻地覆的重组.可见随着 ...
随机推荐
- Laravel写讯搜的ini配置文件的一处陷阱
讯搜客户端在连接服务端之前需要读取配置文件里的配置信息. 配置文件里, 我一开始这样写: server.index = 127.0.0.1:8383 ; 表示索引接口 server.search = ...
- centOS6.0虚拟机ip配置
1.首先使用虚拟机安装好centOS6.0系统 2.虚拟机网络配置:(选择桥接模式) 3. 第一步:首先关闭防火墙 1.将防火服务从启动列表移除 #chkconfig --del iptables # ...
- PXE自动装机
PXE自动装机 一.搭建PXE远程安装服务器 PXE自动装机需要桌面模式 假如不是桌面模式安装的PXE需要安装桌面模式软件包 yum groupinstall "Desktop" ...
- java类.方法创建.继续调用
1.ctrl +n 创建类(首字母大写) 2.alt +s 选倒数第二个 创建方法(Superclass) 3.alt +s 选倒数第三个 创建带参数的方法(using fileds) 4.创建的vo ...
- bis.org
巴塞尔官网包含了很多文档,看起来容易晕,简单说明一下. 首先,文档有几种类型(https://www.bis.org/bcbs/help/publ_types.htm): S: Standards 最 ...
- c#图片裁剪
c#文件裁剪 Bitmap newbm = new Bitmap(nowWidth, nowHeight); Graphics g = Graphics.FromImage(newbm); g.Int ...
- Python入门 (一)
本文是个人python学习笔记,学习资料为廖雪峰python教程,如需更多内容,请移步廖老师官方网站. 一 安装 官网下载安装包安装,安装好之后,在命令提示符输入python进入Python交互模式: ...
- mac 常用技巧
1.xcode-select --install 2.iterm2 https://www.cnblogs.com/xishuai/p/mac-iterm2.html 3.SUDO 免密码 visud ...
- 寒假作业 pta编程总结3
实验代码: 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕 ...
- Mysql对用户的操作
1.创建用户语法:CREATE USER 用户名@地址 IDENTIFIED BY '密码'; 2.给用户授权语法:GRANT 权限1, … , 权限n ON 数据库.* TO 用户名 3.撤销授权语 ...