为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Spring Boot 创建 bean 别名

使用 Spring Boot 创建 bean 别名

千巷猫影 2021-06-07 13:35:46
在 Spring XML 中,我可以使用alias元素为 bean 分配一个或多个别名。我想知道是否有 Spring Boot 编程方式来做同样的事情?用例是我有需要 JMS 的遗留代码TopicConnectionFactory。使用 Spring Boot 的 ActiveMQ 自动配置,我TopicConnectionFactory自动获得了一个。但是,遗留代码使用静态字符串来查找 bean 名称,因此我需要创建一个别名,将遗留代码 bean 查找链接到 Spring Boot bean。我试过查看,BeanDefinitionCustomizer但它没有办法设置别名或 bean 名称。
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

好的,事实证明,一旦您可以访问 a ,就有一种方法可以做到这一点ConfigurableListableBeanFactory:


@Autowired

private ConfigurableListableBeanFactory beanFactory;


@Bean

public BeanPostProcessor jmsTopicConnFactoryAliasCreator()

{

  return new BeanPostProcessor()

  {

     @Override

     public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException

     {

        if(bean instanceof TopicConnectionFactory)

        {

           beanFactory.registerAlias(beanName, "<LEGACY_BEAN_LOOKUP_NAME>");

        }

        return bean;

     }

  };

}


查看完整回答
反对 回复 2021-06-10
  • 1 回答
  • 0 关注
  • 315 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信