gpt4 book ai didi

java - 使用 Spring Boot 创建 bean 别名

转载 作者:行者123 更新时间:2023-12-01 14:28:31 32 4
gpt4 key购买 nike

在 Spring XML 中,我可以使用 alias 元素为 bean 分配一个或多个别名。我想知道是否有 Spring Boot 编程方式来做同样的事情?

用例是我有遗留代码需要 JMS TopicConnectionFactory。使用 Spring Boot 的 ActiveMQ 自动配置,我自动获得了一个 TopicConnectionFactory。但是,遗留代码使用静态字符串来查找 bean 名称,因此我需要创建一个别名,将遗留代码 bean 查找链接到 Spring Boot bean。

我试过查看 BeanDefinitionCustomizer 但它没有设置别名或 bean 名称的方法。

最佳答案

好的,一旦您有权访问 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;
}
};
}

关于java - 使用 Spring Boot 创建 bean 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51502836/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com