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