spring源码解析之AbstractApplicationContext#refresh()方法刷新上下文过程

1.简介

方法的定义

    /**
	 * 加载或刷新配置的持久性表示形式,它可能来自基于Java的配置,XML文件,属性文件,关系数据库模式或其他格式。
	 * 由于这是一种启动方法,因此,如果失败,则应销毁已创建的单例,以避免资源悬空。
	 * 换句话说,在调用此方法之后,应实例化所有单例或根本不实例化。
	 * @throws BeansException 如果无法初始化bean工厂
	 * @throws IllegalStateException 如果已经初始化并且多次刷新.不支持尝试
	 */
	void refresh() throws BeansException, IllegalStateException;
  • 此方法加载配置的持久性表示形式
  • 此方法为ApplicationContext的启动方法,用于实例化所有单例
  • 这个方法其实就是ApplcationContext的入口

2.继承结构

refresh方法定义在ConfigurableApplicationContext接口中,继承关系为

  • 可以看到基本所有的容器上下文都实现了这个接口,说明refresh是A

猜你喜欢

转载自blog.csdn.net/qq_27868061/article/details/109032640
今日推荐