使用 @Component 默认自动装配

发布于 2024-12-11 21:01:02 字数 94 浏览 0 评论 0原文

我有一个接口及其 2 实现。我用 @Component 注释了这两个实现。当默认使用 @Autowired 注入时,如何将其中一个指定为默认 bean。

谢谢

I have an interface its 2 implementation. I annotate both implementations by @Component. How can I specific one of them to be the default bean when will be used to inject by @Autowired as default.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

零度° 2024-12-18 21:01:02

使用 @您认为具有更高优先级的 bean 上的主要 注释。

来自文档

表示当多个bean时应优先考虑一个bean
候选人有资格自动装配单值依赖项。如果
候选者中恰好存在一个“主要”bean,它将是
自动装配值。

可用于直接或间接注释的任何类
用Bean注释的组件或方法。

在类级别使用 Primary 没有任何效果,除非
正在使用组件扫描。如果 Primary-annoted 类是
通过 XML 声明,主注释元数据被忽略,并且

Use @Primary annotation on the bean which you think given higher priority.

from doc

Indicates that a bean should be given preference when multiple
candidates are qualified to autowire a single-valued dependency. If
exactly one 'primary' bean exists among the candidates, it will be the
autowired value.

May be used on any class directly or indirectly annotated with
Component or on methods annotated with Bean.

Using Primary at the class level has no effect unless
component-scanning is being used. If a Primary-annotated class is
declared via XML, Primary annotation metadata is ignored, and <bean
primary="true|false"/>
is respected instead.

溺渁∝ 2024-12-18 21:01:02

Autowired “按类型”工作,这意味着它可以在一个 bean 完全匹配时自动装配。当多个bean匹配时,使用Autowired + Qualifier注释。限定符调用要自动装配的 bean 名称。

这意味着当您声明组件时,您还需要命名它们。

Autowired works "by type", meaning it can autowire when exactly one bean matches. When more than one bean matches, use Autowired + Qualifier annotations. Qualifier calls out the name of the bean to autowire.

This means when you declare the Components you need to name them as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文