在 Spring Boot 中使用 Java 配置在 bean 定义之外别名 bean

Pra*_*wel 5 java spring spring-bean spring-boot

如何在 Spring Boot 中使用 Java 配置为 bean 定义之外的 bean 取别名?

Sco*_*son 6

我也有这个问题,然后解决了:

@Component
public class AliasConfiguration implements BeanFactoryPostProcessor {
    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
        beanFactory.registerAlias("originalBeanName", "newAlias");
        beanFactory.registerAlias("originalBeanName", "newAlias2");
        beanFactory.registerAlias("otherOriginalBeanName", "newAlias3");
    }
}
Run Code Online (Sandbox Code Playgroud)


Atu*_*edi 0

你想为一个已经在其他地方定义的bean添加别名,spring尚不支持此功能。

@Component除了别名之外,在,@Service和中不允许使用 bean @Repository

您可以在 XML 配置中定义时或使用@Bean(name = {"alias1", "alias2"}). 但正如您在案例中提到的,bean 已在另一个 JAR 中定义,因此无法为其添加别名。

一个类似(不完全相似)的问题正在向spring-framework.