mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-22 14:09:25 +00:00
Prior to this commit, the contract of the loadContext() method in the SmartContextLoader SPI required that the ApplicationContext be returned in a fully refreshed state with a JVM shutdown hook registered for it. However, in order to support AOT processing within the Spring TestContext Framework (TCF), we need a way to signal to SmartContextLoader implementations that they should load the test's ApplicationContext without refreshing it or registering a JVM shutdown hook. To address this issue, this commit: - Introduces a new loadContext(MergedContextConfiguration, boolean) method. The boolean `refresh` flag controls whether the returned ApplicationContext should be refreshed and have a JVM shutdown hook registered for it. - Deprecates the existing loadContext(MergedContextConfiguration) method in favor of loadContext(MergedContextConfiguration, boolean). - Removes all use of the deprecated method within the spring-test module, excluding the exception mentioned below. Note that loadContext(MergedContextConfiguration, boolean) is implemented as an interface `default` method which delegates to the deprecated loadContext(MergedContextConfiguration) method for backward compatibility. When migrating a SmartContextLoader to Spring Framework 6.0, implementations that directly implement the SmartContextLoader SPI (instead of extending AbstractGenericContextLoader or AbstractGenericWebContextLoader) will need to override the new loadContext(MergedContextConfiguration, boolean) method in order to honor the `refresh` flag for AOT processing support. See the implementation in AbstractGenericContextLoader for an example of how this can be achieved. Closes gh-28906