Qualifiers
In some instances, the type of bean we wish to inject into our code may be an interface or a Java superclass. However, we may be interested in injecting a specific subclass or a class implementing the interface. For cases like this, CDI provides qualifiers we can use to indicate the specific type we wish to inject into our code.
A CDI qualifier is an annotation that must be decorated with the @Qualifier
annotation. This annotation can then be used to decorate the specific subclass or interface implementation we wish to qualify. Additionally, the injected field in the client code needs to be decorated with the qualifier as well.
Suppose our application could have a special kind of customer; for example, frequent customers could be given the status of premium customers. To handle these premium customers, we could extend our Customer
named bean and decorate it with the following qualifier:
package package com.ensode.jakartaeebook.qualifiers; import jakarta.inject.Qualifier...