Spring IoC 容器
Spring IoC 容器
就怕程序耍流氓 发表于1年前
Spring IoC 容器
  • 发表于 1年前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

##简介

使用开发工具进行 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

....

标签: spring spring IoC
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
就怕程序耍流氓
粉丝 3
博文 18
码字总数 7859
×
就怕程序耍流氓
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: