mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-17 16:39:29 +00:00
Make StartupStep AutoCloseable
This commit mames `StartupStep` extend `AutoCloseable` in order to allow the try/with resources syntax and making the `step.end()` call transparent. Closes gh-35277
This commit is contained in:
@@ -933,13 +933,12 @@ Java::
|
||||
[source,java,indent=0,subs="verbatim,quotes"]
|
||||
----
|
||||
// create a startup step and start recording
|
||||
StartupStep scanPackages = getApplicationStartup().start("spring.context.base-packages.scan");
|
||||
// add tagging information to the current step
|
||||
scanPackages.tag("packages", () -> Arrays.toString(basePackages));
|
||||
// perform the actual phase we're instrumenting
|
||||
this.scanner.scan(basePackages);
|
||||
// end the current step
|
||||
scanPackages.end();
|
||||
try (StartupStep scanPackages = getApplicationStartup().start("spring.context.base-packages.scan")) {
|
||||
// add tagging information to the current step
|
||||
scanPackages.tag("packages", () -> Arrays.toString(basePackages));
|
||||
// perform the actual phase we're instrumenting
|
||||
this.scanner.scan(basePackages);
|
||||
}
|
||||
----
|
||||
|
||||
Kotlin::
|
||||
@@ -947,13 +946,12 @@ Kotlin::
|
||||
[source,kotlin,indent=0,subs="verbatim,quotes"]
|
||||
----
|
||||
// create a startup step and start recording
|
||||
val scanPackages = getApplicationStartup().start("spring.context.base-packages.scan")
|
||||
// add tagging information to the current step
|
||||
scanPackages.tag("packages", () -> Arrays.toString(basePackages))
|
||||
// perform the actual phase we're instrumenting
|
||||
this.scanner.scan(basePackages)
|
||||
// end the current step
|
||||
scanPackages.end()
|
||||
try (val scanPackages = getApplicationStartup().start("spring.context.base-packages.scan")) {
|
||||
// add tagging information to the current step
|
||||
scanPackages.tag("packages", () -> Arrays.toString(basePackages));
|
||||
// perform the actual phase we're instrumenting
|
||||
this.scanner.scan(basePackages);
|
||||
}
|
||||
----
|
||||
======
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ import org.jspecify.annotations.Nullable;
|
||||
* @author Brian Clozel
|
||||
* @since 5.3
|
||||
*/
|
||||
public interface StartupStep {
|
||||
public interface StartupStep extends AutoCloseable {
|
||||
|
||||
/**
|
||||
* Return the name of the startup step.
|
||||
@@ -83,6 +83,10 @@ public interface StartupStep {
|
||||
*/
|
||||
void end();
|
||||
|
||||
@Override
|
||||
default void close() {
|
||||
this.end();
|
||||
}
|
||||
|
||||
/**
|
||||
* Immutable collection of {@link Tag}.
|
||||
|
||||
Reference in New Issue
Block a user