UML圖
接口的作用
從上面的UML圖中,可以看到 ConfigurableApplicationContext
直接繼承了 ApplicationContext
, Lifecycle
, Closeable
接口,所以 ApplicationContext 是 ApplicationContext 的子類。用過Spring或者看過Spring源碼的,肯定都知道ApplicationContext這個接口。它的作用和名字一樣,就是應用程序上下文(說明起一個好名字是多么重要),包含了程序上下文唯一ID,應用程序名稱等信息。
Lifecycle
接口則是負責對 context 的生命周期進行管理,提供了 start()
和 stop()
以及 isRunning()
方法。
Closeable
接口是JDK提供的接口,用於關閉組件,釋放資源。
所以 ConfigurableApplicationContext
接口的作用就是設置上下文 ID,設置父應用上下文,添加監聽器,刷新容器,關閉,判斷是否活躍等方法。其實簡單看一下 ApplicationContext 接口就會發現里面之后get方法,沒有set方法,所以子接口就提供了set方法。