6

How to alias a bean outside the bean definition using Java config in Spring Boot?

Prajwel
  • 97
  • 7
  • ''outside the bean definition" do you mean, bean is already defined and you are not allowed to change that? – Atul Dwivedi Mar 01 '19 at 06:10
  • @AtulDwivedi The bean is already defined in another project(jar) and I'm using it in my project, now I have a requirement to alias the same bean. – Prajwel Mar 01 '19 at 06:12

2 Answers2

5

I have this as well, and solved it like this:

@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");
    }
}
Scott Carlson
  • 3,764
  • 1
  • 17
  • 11
0

You want to alias a bean which is already defined somewhere else, this feature is not supported in spring yet.

Along with that aliasing a bean is not allowed in @Component, @Service and @Repository.

Either you can alias a bean while defining in XML configuration or while using @Bean(name = {"alias1", "alias2"}). But as you mentioned in you case bean is already defined in another JAR, it's not possible to alias it.

A similar(not exactly similar) issue is open to spring-framework.

Atul Dwivedi
  • 1,452
  • 16
  • 29