Allow to set the order from Kotlin bean DSL
Closes gh-30849
This commit is contained in:
parent
16ac495084
commit
bf1c179b7f
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue