15

In spring, you can XML-configure a bean to have a qualifier. I can't seem to find how I can attach a qualifier if configuring beans through Java annotations. What's up with that? Do I have to use just plain old names?

Aleksandr Dubinsky
  • 22,436
  • 15
  • 82
  • 99

2 Answers2

30

If you're using annotations (not Java based configuration), you can use the following to add a qualifier (see the Spring documentation):

@Component
@Qualifier("myQualifier")
public class MyBean {
    //code
}

And to wire in the bean, use the following (again, see the Spring documentation):

public class MyClass {

    @Autowired
    @Qualifier("myQualifier")
    private MyBean myBean;

    //more code

}
Snowy Coder Girl
  • 5,408
  • 10
  • 41
  • 72
  • 7
    And what's wrong with `@Component("componentName")`? How `@Component @Qualifier` is better? – Nick Nov 18 '16 at 14:05
  • 2
    @Nick You can qualify multiple components with the same qualifier. Think of it as a grouping concept. – levant pied Nov 30 '18 at 18:51
19

What, like @Qualifier, you mean?

3.10.4 Defining bean metadata within components

Example:

  @Bean @Qualifier("public")
  public TestBean publicInstance() {
      return new TestBean("publicInstance");
  }
skaffman
  • 398,947
  • 96
  • 818
  • 769