提问者:小点点

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


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


共2个答案

匿名用户

我也有这个,像这样解决:

@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");
    }
}

匿名用户

您想将已经在其他地方定义的bean别名,Spring还不支持此功能。

除了这种混淆现象,bean在@Component@Service@Repository中是不允许的。

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

一个类似(不完全相似)的问题对spring-frame开放。