从上面的UML图中,可以看到 ConfigurableApplicationContext
直接继承了 ApplicationContext
, Lifecycle
, Closeable
接口,所以 ApplicationContext 是 ApplicationContext 的子类。用过Spring或者看过Spring源码的,肯定都知道ApplicationContext这个接口。它的作用和名字一样,就是应用程序上下文(说明起一个好名字是多么重要),包含了程序上下文唯一ID,应用程序名称等信息。
Lifecycle
接口则是负责对 context 的生命周期进行管理,提供了 start()
和 stop()
以及 isRunning()
方法。
Closeable
接口是JDK提供的接口,用于关闭组件,释放资源。
所以 ConfigurableApplicationContext
接口的作用就是设置上下文 ID,设置父应用上下文,添加监听器,刷新容器,关闭,判断是否活跃等方法。其实简单看一下 ApplicationContext 接口就会发现里面之后get方法,没有set方法,所以子接口就提供了set方法。