Add BeanRegistrarDsl.register
See gh-34557
This commit is contained in:
@@ -334,6 +334,15 @@ open class BeanRegistrarDsl(private val init: BeanRegistrarDsl.() -> Unit): Bean
|
||||
return registry.registerBean(T::class.java, customizer)
|
||||
}
|
||||
|
||||
/**
|
||||
* Register beans using the given [BeanRegistrar].
|
||||
* @param registrar the bean registrar that will be called to register
|
||||
* additional beans
|
||||
*/
|
||||
fun register(registrar: BeanRegistrar) {
|
||||
return registry.register(registrar)
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply the nested block if the given profile expression matches the
|
||||
* active profiles.
|
||||
|
||||
@@ -65,6 +65,12 @@ class BeanRegistrarDslConfigurationTests {
|
||||
assertThat(beanDefinition.resolvableType.resolveGeneric(0)).isEqualTo(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun chainedBeanRegistrar() {
|
||||
val context = AnnotationConfigApplicationContext(ChainedBeanRegistrarKotlinConfiguration::class.java)
|
||||
assertThat(context.getBean<Bar>().foo).isEqualTo(context.getBean<Foo>())
|
||||
}
|
||||
|
||||
class Foo
|
||||
data class Bar(val foo: Foo)
|
||||
data class Baz(val message: String = "")
|
||||
@@ -109,4 +115,12 @@ class BeanRegistrarDslConfigurationTests {
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@Configuration
|
||||
@Import(ChainedBeanRegistrar::class)
|
||||
internal class ChainedBeanRegistrarKotlinConfiguration
|
||||
|
||||
private class ChainedBeanRegistrar : BeanRegistrarDsl({
|
||||
register(SampleBeanRegistrar())
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user