diff --git a/spring-context/src/main/kotlin/org/springframework/context/support/GenericApplicationContextExtension.kt b/spring-context/src/main/kotlin/org/springframework/context/support/GenericApplicationContextExtension.kt index 27040417a46..7e57d99c0be 100644 --- a/spring-context/src/main/kotlin/org/springframework/context/support/GenericApplicationContextExtension.kt +++ b/spring-context/src/main/kotlin/org/springframework/context/support/GenericApplicationContextExtension.kt @@ -33,16 +33,16 @@ object GenericApplicationContextExtension { /** * @see GenericApplicationContext.registerBean(Class, Supplier, BeanDefinitionCustomizer...) */ - inline fun GenericApplicationContext.registerBean(supplier: Supplier, - vararg customizers: BeanDefinitionCustomizer) { - registerBean(T::class.java, supplier, *customizers) + inline fun GenericApplicationContext.registerBean( + crossinline supplier: () -> T, vararg customizers: BeanDefinitionCustomizer) { + registerBean(T::class.java, Supplier { supplier.invoke() }, *customizers) } /** * @see GenericApplicationContext.registerBean(String, Class, Supplier, BeanDefinitionCustomizer...) */ inline fun GenericApplicationContext.registerBean(name: String, - supplier: Supplier, vararg customizers: BeanDefinitionCustomizer) { - registerBean(name, T::class.java, supplier, *customizers) + crossinline supplier: () -> T, vararg customizers: BeanDefinitionCustomizer) { + registerBean(name, T::class.java, Supplier { supplier.invoke() }, *customizers) } } diff --git a/spring-context/src/test/kotlin/org/springframework/context/support/GenericApplicationContextExtensionTests.kt b/spring-context/src/test/kotlin/org/springframework/context/support/GenericApplicationContextExtensionTests.kt index f707d204fd5..4b4a4c5d574 100644 --- a/spring-context/src/test/kotlin/org/springframework/context/support/GenericApplicationContextExtensionTests.kt +++ b/spring-context/src/test/kotlin/org/springframework/context/support/GenericApplicationContextExtensionTests.kt @@ -4,7 +4,6 @@ import org.junit.Assert.assertNotNull import org.junit.Test import org.springframework.context.support.GenericApplicationContextExtension.registerBean import org.springframework.beans.factory.BeanFactoryExtension.getBean -import java.util.function.Supplier class GenericApplicationContextExtensionTests { @@ -27,7 +26,7 @@ class GenericApplicationContextExtensionTests { @Test fun registerBeanWithSupplier() { val context = GenericApplicationContext() - context.registerBean(Supplier { BeanA() }) + context.registerBean({ BeanA() }) context.refresh() assertNotNull(context.getBean(BeanA::class)) } @@ -35,7 +34,7 @@ class GenericApplicationContextExtensionTests { @Test fun registerBeanWithNameAndSupplier() { val context = GenericApplicationContext() - context.registerBean("a", Supplier { BeanA() }) + context.registerBean("a", { BeanA() }) context.refresh() assertNotNull(context.getBean("a")) }