【发布时间】:2026-01-20 05:30:01
【问题描述】:
我知道并理解基于构造函数的注入。但是,自动装配模式让我感到困惑。 1) 我读过自动装配的默认模式是“不自动装配”,即我们必须手动设置 xml 文件中的属性。但是,基于 xml 的配置不是一种自动装配吗?如何将其视为“无自动装配”? 2) 其他自动装配模式是 i) byName ii) byType iii)constructor iv) auto-detect。我是否正确假设以下内容:
a) 当使用基于 xml 配置的自动装配时,默认模式是 'byName'(即我必须保持属性引用的名称与用作属性的 bean 的名称相同。)
b) 使用 Annotations 时,默认模式为 'byType'(无论 @Autowired 关键字放在哪里,即在 setter、构造函数或属性上,它都会搜索正在自动写入的属性的类型)
3) 基于构造函数的注入和自动装配的“构造函数”模式有什么区别?(我已经读过构造函数模式意味着它在所有构造函数参数上应用 byType 模式,但它与放置 @Autowired 关键字有什么不同呢?构造函数)
4) 我知道要在注解中启用自动装配模式 byName,在 xml 文件的 bean 定义中,我必须使用“autowire = 'byName'”。但是,假设我只使用 Annotations 配置(使用@Component,并且在 xml 中没有 bean 定义),并且我想使用 byName 自动装配模式,那么这样做的方法是什么?
【问题讨论】: