文档章节

Spring IoC 容器

就怕程序耍流氓
 就怕程序耍流氓
发布于 2017/02/14 17:03
字数 242
阅读 1
收藏 0

##简介

使用开发工具进行 debug 分析一个 ApplicationContext 初始化过程

###开发条件

组件版本
JDK1.8.0_91
Spring4.3.3
IDESTS 3.7.3

##容器初始化分析

###执行 AbstractApplicationContext 的 static 块

###执行 ClassPathXmlApplicationContext 的构造方法

1.初始化 AbstractXmlApplicationContext

2.初始化 AbstractRefreshableConfigApplicationContext

3.初始化 AbstractRefreshableApplicationContext

4.初始化 AbstractApplicationContext

5.初始化 DefaultResourceLoader

6.执行 ClassUtils 的 getDefaultClassLoader 返回结果为 sun.misc.Launcher$AppClassLoader

7.初始化 AbstractApplicationContext 的成员属性

8.执行 AbstractRefreshableApplicationContext 的 getResourcePatternResolver

9.初始化 PathMatchingResourcePatternResolver

10.初始化 AntPathMatcher

11.执行 AbstractRefreshableConfigApplicationContext 的 setConfigLocations

12.执行 AbstractRefreshableConfigApplicationContext 的 resolvePath

13.执行 AbstractApplicationContext 的 createEnvironment 返回一个新的 StandardEnvironment

14.执行 AbstractApplicationContext 的 refresh

15.执行 AbstractPropertyResolver 的 validateRequiredProperties

16.执行 AbstractApplicationContext 的 obtainFreshBeanFactory

17.执行 AbstractRefreshableApplicationContext 的 refreshBeanFactory

18.执行 AbstractRefreshableApplicationContext 的 createBeanFactory

19.初始化 DefaultListableBeanFactory

20.加载 javax.inject.Provider

21.执行 AbstractXmlApplicationContext 的 loadBeanDefinitions

22.初始化 XmlBeanDefinitionReader

23.执行 AbstractApplicationContext 的 prepareBeanFactory

24.执行 AbstractApplicationContext 的 initLifecycleProcessor

25.发出 ContextRefreshedEvent 事件

##工厂创建Bean分析

1.清除 Bean Name 中的 FACTORY_BEAN_PREFIX ( '&' ) 标记

2.执行 DefaultSingletonBeanRegistry 的 getSingleton

....

© 著作权归作者所有

共有 人打赏支持
就怕程序耍流氓

就怕程序耍流氓

粉丝 3
博文 18
码字总数 7859
作品 0
上海
后端工程师
深入理解Spring源码(一)-IOC容器的定位,载入,注册

前言:Spring源码继承,嵌套层次非常多,读起来非常容易晕,小伙伴们在看文章的时候一定要跟着文章的思路自己去源码里点一点,看一看,并且多看几次。就会越来越清晰。下面开始正题 1.Spring...

Meet相识_bfa5
05/01
0
0
【死磕 Spring】—– IOC 之 IOC 初始化总结

原文出自:http://cmsblogs.com 前面 13 篇博文从源码层次分析了 IOC 整个初始化过程,这篇就这些内容做一个总结将其连贯起来。 在前文提过,IOC 容器的初始化过程分为三步骤:Resource 定位...

chenssy
10/09
0
0
在spring中如何配置和使用一个Bean

在Spring中,那些组成你应用程序的主体(backbone)及由Spring IoC容器所管理的对象,被称之为bean。 简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中...

冰雷卡尔
2012/07/24
0
0
1 Spring核心:IoC容器的实现

依赖控制反转的实现有很多种方式。在Spring中,IoC容器是实现这个模式的载体, 它可以在对象生成或初始化时直接将数据注入到对象中,也可以通过将对象引用注入到对象数据域中的方式来注入对方...

qq_18150351
04/24
0
0
三条路线告诉你如何掌握Spring IoC容器的核心原理

一、前言 前三篇已经从历史的角度和大家一起探讨了为什么会有Spring,Spring的两个核心概念:IoC和AOP的雏形,Spring的历史变迁和如今的生态帝国。本节的主要目的就是通过一个切入点带大家一...

Java小铺
08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

原型模式

1、原型模式-定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 克隆(浅度克隆->拷贝值类型或者引用,深度克隆->创建新的对象,开辟新的内存) 例如客户端知道抽象Pro...

阿元
今天
51
0
awk命令扩展使用操作

awk 中使用外部shell变量 示例1 [root@centos01 t1022]# A=888[root@centos01 t1022]# echo "" | awk -v GET_A=$A '{print GET_A}'888[root@centos01 t1022]# echo "aaaaaaaaaaaaa" | aw......

野雪球
今天
44
0
深入解析MySQL视图VIEW

Q:什么是视图?视图是干什么用的? A:视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。   通过视图,可以展现基表的部分数据;...

IT--小哥
今天
50
0
虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
今天
48
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
49
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部