Allow registering aliases with BeanRegistry

Closes gh-34599
This commit is contained in:
Sébastien Deleuze
2025-03-19 15:07:54 +01:00
parent 087d239148
commit 2bc213d703
6 changed files with 30 additions and 1 deletions

View File

@@ -38,6 +38,15 @@ import org.springframework.core.env.Environment;
*/
public interface BeanRegistry {
/**
* Given a name, register an alias for it.
* @param name the canonical name
* @param alias the alias to be registered
* @throws IllegalStateException if the alias is already in use
* and may not be overridden
*/
void registerAlias(String name, String alias);
/**
* Register a bean from the given bean class, which will be instantiated
* using the related {@link BeanUtils#getResolvableConstructor resolvable constructor}

View File

@@ -80,6 +80,11 @@ public class BeanRegistryAdapter implements BeanRegistry {
}
@Override
public void registerAlias(String name, String alias) {
this.beanRegistry.registerAlias(name, alias);
}
@Override
public <T> String registerBean(Class<T> beanClass) {
String beanName = BeanDefinitionReaderUtils.uniqueBeanName(beanClass.getName(), this.beanRegistry);

View File

@@ -64,6 +64,17 @@ open class BeanRegistrarDsl(private val init: BeanRegistrarDsl.() -> Unit): Bean
*/
lateinit var env: Environment
/**
* Given a name, register an alias for it.
* @param name the canonical name
* @param alias the alias to be registered
* @throws IllegalStateException if the alias is already in use
* and may not be overridden
*/
fun registerAlias(name: String, alias: String) {
registry.registerAlias(name, alias);
}
/**
* Register a bean from the given bean class, which will be instantiated
* using the related [resolvable constructor]