如果一个Bean @Autowired
没有 任何Bean@Qualifier
,并且存在多个该类型的Bean,@Primary
则将选择标记的候选Bean ,即,当没有其他可用信息(即@Qualifier
丢失)时,它是默认选择。
一个好的用例是,最初您只有一个类型的bean,因此没有使用任何代码@Qualifier
。然后,当您添加另一个bean时,您还将同时添加@Qualifier
到旧bean和新bean中,因此任何人@Autowired
都可以选择所需的bean 。通过添加@Primary
到旧的原始bean中,您不必添加@Qualifier
到所有现有的bean中@Autowired
。可以这么说,他们是“祖父”。
@Primary
如果例如95%的人@Autowired
想要一个特定的豆,那也是很好的。这样,只有@Autowired
想要其他bean的才需要指定@Qualifier
。这样,您将拥有所有自动装配的主bean,并且@Qualifier
仅用于请求“备用” bean。