Allow to set the order from Kotlin bean DSL
Closes gh-30849
This commit is contained in:
@@ -21,6 +21,7 @@ import org.springframework.beans.factory.ObjectProvider
|
||||
import org.springframework.beans.factory.config.BeanDefinition
|
||||
import org.springframework.beans.factory.config.BeanDefinitionCustomizer
|
||||
import org.springframework.beans.factory.getBeanProvider
|
||||
import org.springframework.beans.factory.support.AbstractBeanDefinition
|
||||
import org.springframework.beans.factory.support.BeanDefinitionReaderUtils
|
||||
import org.springframework.context.ApplicationContextInitializer
|
||||
import org.springframework.core.env.ConfigurableEnvironment
|
||||
@@ -165,6 +166,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
*/
|
||||
@@ -176,7 +178,8 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: Role? = null) {
|
||||
role: Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
val customizer = BeanDefinitionCustomizer { bd ->
|
||||
scope?.let { bd.scope = scope.name.lowercase() }
|
||||
@@ -187,6 +190,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
destroyMethodName?.let { bd.destroyMethodName = destroyMethodName }
|
||||
description?.let { bd.description = description }
|
||||
role?. let { bd.role = role.ordinal }
|
||||
order?.let { bd.setAttribute(AbstractBeanDefinition.ORDER_ATTRIBUTE, order) }
|
||||
}
|
||||
|
||||
val beanName = name ?: BeanDefinitionReaderUtils.uniqueBeanName(T::class.java.name, context);
|
||||
@@ -207,6 +211,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param function the bean supplier function
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
*/
|
||||
@@ -219,6 +224,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: Role? = null,
|
||||
order: Int? = null,
|
||||
crossinline function: BeanSupplierContext.() -> T) {
|
||||
|
||||
val customizer = BeanDefinitionCustomizer { bd ->
|
||||
@@ -230,6 +236,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
destroyMethodName?.let { bd.destroyMethodName = destroyMethodName }
|
||||
description?.let { bd.description = description }
|
||||
role?. let { bd.role = role.ordinal }
|
||||
order?.let { bd.setAttribute(AbstractBeanDefinition.ORDER_ATTRIBUTE, order) }
|
||||
}
|
||||
|
||||
|
||||
@@ -252,6 +259,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2.3
|
||||
@@ -266,9 +274,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke()
|
||||
}
|
||||
}
|
||||
@@ -288,6 +297,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -302,9 +312,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref())
|
||||
}
|
||||
}
|
||||
@@ -324,6 +335,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -338,9 +350,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -360,6 +373,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -374,9 +388,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -396,6 +411,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -410,9 +426,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -432,6 +449,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -446,9 +464,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -468,6 +487,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -482,9 +502,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -504,6 +525,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -519,9 +541,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -541,6 +564,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -556,9 +580,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -578,6 +603,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -593,9 +619,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -615,6 +642,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -630,9 +658,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -652,6 +681,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -667,9 +697,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -689,6 +720,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -704,9 +736,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -726,6 +759,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -741,9 +775,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -763,6 +798,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -779,9 +815,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -801,6 +838,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -817,9 +855,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -839,6 +878,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -855,9 +895,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -877,6 +918,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -893,9 +935,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -915,6 +958,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -931,9 +975,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -953,6 +998,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -969,9 +1015,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -991,6 +1038,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -1007,9 +1055,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -1029,6 +1078,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -1046,9 +1096,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
@@ -1068,6 +1119,7 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
* @param destroyMethodName Set the name of the destroy method
|
||||
* @param description Set a human-readable description of this bean definition
|
||||
* @param role Set the role hint for this bean definition
|
||||
* @param order Set the sort order for the targeted bean
|
||||
* @see GenericApplicationContext.registerBean
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @since 5.2
|
||||
@@ -1085,9 +1137,10 @@ open class BeanDefinitionDsl internal constructor (private val init: BeanDefinit
|
||||
initMethodName: String? = null,
|
||||
destroyMethodName: String? = null,
|
||||
description: String? = null,
|
||||
role: BeanDefinitionDsl.Role? = null) {
|
||||
role: BeanDefinitionDsl.Role? = null,
|
||||
order: Int? = null) {
|
||||
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role) {
|
||||
bean(name, scope, isLazyInit, isPrimary, isAutowireCandidate, initMethodName, destroyMethodName, description, role, order) {
|
||||
f.invoke(ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref(), ref())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,11 +18,13 @@ package org.springframework.context.support
|
||||
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.assertj.core.api.Assertions.assertThatExceptionOfType
|
||||
import org.junit.jupiter.api.fail
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.fail
|
||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException
|
||||
import org.springframework.beans.factory.getBean
|
||||
import org.springframework.beans.factory.getBeanProvider
|
||||
import org.springframework.context.support.BeanDefinitionDsl.*
|
||||
import org.springframework.core.Ordered
|
||||
import org.springframework.core.env.get
|
||||
import org.springframework.core.testfixture.env.MockPropertySource
|
||||
import java.util.stream.Collectors
|
||||
@@ -196,6 +198,25 @@ class BeanDefinitionDslTests {
|
||||
} catch (ignored: Exception) {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `Declare beans with ordering`() {
|
||||
val beans = beans {
|
||||
bean<FooFoo>(order = Ordered.LOWEST_PRECEDENCE) {
|
||||
FooFoo("lowest")
|
||||
}
|
||||
bean<FooFoo>(order = Ordered.HIGHEST_PRECEDENCE) {
|
||||
FooFoo("highest")
|
||||
}
|
||||
}
|
||||
|
||||
val context = GenericApplicationContext().apply {
|
||||
beans.initialize(this)
|
||||
refresh()
|
||||
}
|
||||
|
||||
assertThat(context.getBeanProvider<FooFoo>().orderedStream().map { it.name }).containsExactly("highest", "lowest")
|
||||
}
|
||||
}
|
||||
|
||||
class Foo
|
||||
|
||||
Reference in New Issue
Block a user