-
Notifications
You must be signed in to change notification settings - Fork 38.6k
Closed
Labels
in: coreIssues in core modules (aop, beans, core, context, expression)Issues in core modules (aop, beans, core, context, expression)type: bugA general bugA general bug
Milestone
Description
While working on PoC for spring-projects/spring-boot#42746, I encountered a strange behaviour when a bean is qualified and has default-candidate = false. For some reason, injection does not work when the constructor has a qualified parameter.
private final SomeService someService;
AutowireByConstructorQualifier(@Qualifier("test") SomeService someService) {
this.someService = someService;
}
As I understood, default-candidate
should back off the injection by plain type, but it should work when the parameter has a @Qualifier
annotation. What is weird that the following syntax works fine:
@Qualifier("test")
@Autowired
public void setSomeService(@Qualifier("test") SomeService someService) {
this.someService = someService;
}
It seems like it might be a bug, but I'm not entirely sure.
Sample:
default-candidate-qualifier.zip
Metadata
Metadata
Assignees
Labels
in: coreIssues in core modules (aop, beans, core, context, expression)Issues in core modules (aop, beans, core, context, expression)type: bugA general bugA general bug