我也有这个,像这样解决:
@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
开放。