【问题标题】:Aliasing a bean outside the bean definition using Java config in Spring Boot在 Spring Boot 中使用 Java 配置在 bean 定义之外为 bean 起别名
【发布时间】:2019-03-01 04:49:48
【问题描述】:

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

【问题讨论】:

  • ''在 bean 定义之外" 你的意思是,bean 已经定义并且你不能改变它吗?
  • @AtulDwivedi bean 已经在另一个项目(jar)中定义,我正在我的项目中使用它,现在我需要为同一个 bean 起别名。

标签: java spring spring-boot spring-bean


【解决方案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");
    }
}

【讨论】:

    【解决方案2】:

    你想给一个已经在别处定义的 bean 起别名,spring 还不支持这个特性。

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

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

    一个相似(不完全相似)issuespring-framework 开放。

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 2016-01-02
      • 2013-11-19
      • 2016-08-22
      • 1970-01-01
      相关资源
      最近更新 更多