diff --git a/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt b/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt index 799140a05c..02e7aa3a86 100644 --- a/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt +++ b/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt @@ -17,6 +17,7 @@ package org.springframework.context.support import org.springframework.beans.factory.config.BeanDefinitionCustomizer +import org.springframework.context.ApplicationContextInitializer import org.springframework.core.env.ConfigurableEnvironment import java.util.function.Supplier @@ -75,7 +76,7 @@ fun beans(init: BeanDefinitionDsl.() -> Unit): BeanDefinitionDsl { * @author Sebastien Deleuze * @since 5.0 */ -class BeanDefinitionDsl(private val condition: (ConfigurableEnvironment) -> Boolean = { true }) : (GenericApplicationContext) -> Unit { +class BeanDefinitionDsl(private val condition: (ConfigurableEnvironment) -> Boolean = { true }) : ApplicationContextInitializer { @PublishedApi internal val registrations = arrayListOf<(GenericApplicationContext) -> Unit>() @@ -210,17 +211,17 @@ class BeanDefinitionDsl(private val condition: (ConfigurableEnvironment) -> Bool } /** - * Register the bean defined via the DSL on thAh pe provided application context. + * Register the bean defined via the DSL on the provided application context. * @param context The `ApplicationContext` to use for registering the beans */ - override fun invoke(context: GenericApplicationContext) { + override fun initialize(context: GenericApplicationContext) { for (registration in registrations) { if (condition.invoke(context.environment)) { registration.invoke(context) } } for (child in children) { - child.invoke(context) + child.initialize(context) } } } diff --git a/spring-context/src/test/kotlin/org/springframework/context/support/BeanDefinitionDslTests.kt b/spring-context/src/test/kotlin/org/springframework/context/support/BeanDefinitionDslTests.kt index 53923231b1..cfda91db95 100644 --- a/spring-context/src/test/kotlin/org/springframework/context/support/BeanDefinitionDslTests.kt +++ b/spring-context/src/test/kotlin/org/springframework/context/support/BeanDefinitionDslTests.kt @@ -36,9 +36,10 @@ class BeanDefinitionDslTests { bean { Baz(ref("bar")) } } - val context = GenericApplicationContext() - beans.invoke(context) - context.refresh() + val context = GenericApplicationContext().apply { + beans.initialize(this) + refresh() + } assertNotNull(context.getBean()) assertNotNull(context.getBean("bar")) @@ -60,9 +61,10 @@ class BeanDefinitionDslTests { } } - val context = GenericApplicationContext() - beans.invoke(context) - context.refresh() + val context = GenericApplicationContext().apply { + beans.initialize(this) + refresh() + } assertNotNull(context.getBean()) assertNotNull(context.getBean("bar")) @@ -87,9 +89,9 @@ class BeanDefinitionDslTests { val context = GenericApplicationContext().apply { environment.propertySources.addFirst(SimpleCommandLinePropertySource("--name=foofoo")) + beans.initialize(this) + refresh() } - beans.invoke(context) - context.refresh() assertNotNull(context.getBean()) assertNotNull(context.getBean("bar"))