gpt4 book ai didi

java - @Primary 与带有 @Qualifier 注释的 @Autowired 之间的区别

转载 作者:IT老高 更新时间:2023-10-28 13:53:20 24 4
gpt4 key购买 nike

所以,如果我理解正确的话,如果有多个候选者,两者都是确定要 Autowiring 哪个 bean 的方法。那么到底有什么区别呢?

最佳答案

阅读 @Primary作为“默认”。

如果一个bean有@Autowired 没有任何@Qualifier,并且存在多个该类型的bean,候选bean标记为 @Primary 将被选中,即当没有其他信息可用时,即当 @Qualifier 缺失时,它是默认选择。

一个很好的用例是,最初您只有一个该类型的 bean,因此没有使用 @Qualifier 的代码。然后,当您添加另一个 bean 时,您还会将 @Qualifier 添加到旧 bean 和新 bean,因此任何 @Autowired 都可以选择它想要的。通过将 @Primary 添加到旧的原始 bean,您不必将 @Qualifier 添加到所有现有的 @Autowired。可以这么说,他们是“祖父”。

@Primary 也很好,例如95% 的 @Autowired 想要一个特定的 bean。这样,只有想要其他 bean 的 @Autowired 需要指定 @Qualifier。这样,您就有了所有 Autowiring 所需的主要 bean,并且 @Qualifier 仅用于请求“替代”bean。

关于java - @Primary 与带有 @Qualifier 注释的 @Autowired 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48447779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com