Spring:SpringIOC容器初始化主體流程
一、IOC容器體系
IoC容器是Spring的核心模塊,是抽象了對象管理、依賴關系管理的框架解決方案。
Spring 提供了很多的容器,其中 BeanFactory 是頂層容器(根容器),不能被實例化,它定義了所有 IoC 容器 必須遵從的一套原則,具體的容器實現可以增加額外的功能,比如我們常用到的ApplicationContext,其下更具體的實現如 ClassPathXmlApplicationContext 包含了解析 xml 等一系列的內容,AnnotationConfigApplicationContext 則是包含了注解解析等一系列的內容。
Spring IoC 容器繼承體系非常聰明,需要使用哪個層次用哪個層次即可,不必使用功能大而全。
BeanFactory頂級接口方法棧
BeanFacotry容器繼承體系
通過其接口設計,我們可以看到我們一貫使用的 ApplicationContext 除了繼承BeanFactory的子接口,還繼承了ResourceLoader、MessageSource等接口,因此其提供的功能也就更豐富了。
二、IOC容器初始化主流程
Spring IoC 容器初始化的關鍵環節就在 AbstractApplicationContext#refresh() 方法中,我們查看 refresh 方法來俯瞰容器創建的主體流程。