Didn't know that @Qualifier
annotation didn't support the properties placeholder, which @Resource
support it out of the box.
Any reason behind it that @Qualifier
don't enjoy the same treatment?
Parameter 0 of constructor in com.welcome.samples.patterns.strategy.startup.BeanNameBasedEnrichmentController required a bean of type 'com.welcome.samples.patterns.strategy.PayloadEnricher' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Qualifier("${com.welcome.samples.strategy.payload.enricher.bean}")
The following candidates were found but could not be injected:
- User-defined bean method 'swimInGmailEnricher' in 'NamedBeanEnrichment'
- User-defined bean method 'runInIcloudEnricher' in 'NamedBeanEnrichment'
Action:
Consider revisiting the entries above or defining a bean of type 'com.welcome.samples.patterns.strategy.PayloadEnricher' in your configuration.
As above, change to use @Resource
solve the problem, but constructor argument is not supported by @Resource
.
And this making some friction in unit testing
Comment From: snicoll
Thanks for the suggestion, this is a duplicate of #13441