ContextRefreshedEvent
在初始化或刷新ApplicationContext時發布(例如,通過使用ConfigurableApplicationContext接口上的refresh()方法)。在這里,“已初始化”是指所有Bean都已加載,檢測到並激活了后處理器Bean,已預先實例化單例並且可以使用ApplicationContext對象。只要尚未關閉上下文,只要選定的ApplicationContext實際上支持這種“熱”刷新,就可以多次觸發刷新。例如,XmlWebApplicationContext支持熱刷新,但GenericApplicationContext不支持。
ContextStartedEvent
使用ConfigurableApplicationContext接口上的start()方法啟動ApplicationContext時發布。此處,“已啟動”表示所有Lifecycle bean都收到一個明確的啟動信號。通常,此信號用於在顯式停止后重新啟動Bean,但也可以用於啟動尚未配置為自動啟動的組件(例如,尚未在初始化時啟動的組件)。
ContextStoppedEvent
通過使用ConfigurableApplicationContext接口上的stop()方法停止ApplicationContext時發布。在這里,“已停止”表示所有Lifecycle bean都收到一個明確的停止信號。停止的上下文可以通過start()調用重新啟動。
ContextClosedEvent
通過使用ConfigurableApplicationContext接口上的close()方法關閉ApplicationContext時發布。在此,“封閉”表示所有單例豆都被破壞。封閉的情境到了生命的盡頭。無法刷新或重新啟動。
RequestHandledEvent
一個特定於Web的事件,告訴所有Bean HTTP請求已得到服務。請求完成后,將發布此事件。此事件僅適用於使用Spring的DispatcherServlet的Web應用程序。
