Junior — Middle
Explain the differences between the key components Primary and Qualifier in these systems.
sobes.tech AI
Answer from AI
In the context of Java and, for example, frameworks like Spring, @Primary and @Qualifier are used to resolve ambiguities during dependency injection.
@Primarymarks one bean as the primary one, which will be used by default if there are multiple candidates of the same type.@Qualifierallows explicitly specifying which bean to inject, using a name or a special identifier.
Example:
@Component
@Primary
public class ServiceA implements Service {}
@Component
@Qualifier("specialService")
public class ServiceB implements Service {}
@Autowired
private Service service; // injects ServiceA
@Autowired
@Qualifier("specialService")
private Service service; // injects ServiceB
Thus, @Primary sets the preferred bean by default, and @Qualifier provides a precise choice of a specific bean.