是否使用 @Autowired
自动检测到?
当使用 @Qualifier
时,它是按名称进行的依赖注入吗?
我们如何使用这些注解进行 setter 和构造函数注入?
原文由 Dhananjaya Senanayake 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否使用 @Autowired
自动检测到?
当使用 @Qualifier
时,它是按名称进行的依赖注入吗?
我们如何使用这些注解进行 setter 和构造函数注入?
原文由 Dhananjaya Senanayake 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
您可以将
@Qualifier
与@Autowired
--- 一起使用。事实上,如果发现不明确的 bean 类型,spring 会要求您明确选择 bean,在这种情况下,您应该提供限定符例如,在以下情况下,有必要提供限定符
编辑:
在 Lombok 1.18.4 中, 当你有 @Qualifier 时,最终可以避免构造函数注入的样板,所以现在可以执行以下操作:
如果您使用新的 lombok.config 规则 copyableAnnotations(通过将以下内容放在项目根目录的 lombok.config 中):
这是最近在最新的 lombok 1.18.4 中引入的。
笔记
如果您正在使用字段或 setter 注入,那么您必须将 @Autowired 和 @Qualifier 放在字段或 setter 函数的顶部,如下所示(它们中 _的任何一个都可以工作_)
要么
如果您正在使用构造函数注入,那么注释应该放在构造函数上,否则代码将无法运行。像下面这样使用它 -