Sample answer: "If I inject a single value of that type, the context can't choose and startup fails with NoUniqueBeanDefinitionException. I fix it with @Primary on one bean, @Qualifier at the injection point, or by injecting a List or Map of all of them. As a fallback, the bean name works as a default qualifier."
What the docs say:
NoUniqueBeanDefinitionExceptionis "thrown when a BeanFactory is asked for a bean instance for which multiple matching candidates have been found when only one matching bean was expected."- "If exactly one primary bean exists among the candidates, it becomes the autowired value."
- "For a fallback match, the bean name is considered a default qualifier value."
The common claim that Spring matches the parameter or field name to the bean name is not confirmed in the docs. The qualifiers page only confirms the bean name as a default qualifier.