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

时间:2019-03-01 04:49:49

标签: java spring spring-boot spring-bean

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

2 个答案:

答案 0 :(得分:1)

我也有这个,并且解决了这个问题:

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

答案 1 :(得分:0)

您想为已经在其他地方定义的bean加上别名,春季还不支持此功能。

除此之外,@Component@Service@Repository中不允许使用bean。

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

spring-frameworkissue相似(不完全相似)。