-
Notifications
You must be signed in to change notification settings - Fork 38.8k
Description
While working on #35168, I noticed that there is currently no way to differentiate between an ApplicationContext start and restart in terms of events.
This is due to the fact that a ContextStartedEvent is fired for both AbstractApplicationContext.start() and AbstractApplicationContext.restart().
Thus, to assist developers who may wish to differentiate between start and restart events, we should introduce a new ContextRestartedEvent as a subtype of ContextStartedEvent.
By making ContextRestartedEvent a subtype of ContextStartedEvent, applications can still expect ContextStoppedEvent/ContextStartedEvent event pairs for consistent lifecycle semantics, and they can optionally check if the ContextStartedEvent is a ContextRestartedEvent. Alternatively, applications can explicitly react to a ContextRestartedEvent.