存在多个构造函数时,使用autowire =“ constructor”进行依赖注入?

存在多个构造函数时,使用autowire =“ constructor”进行依赖注入?,第1张

存在多个构造函数时,使用autowire =“ constructor”进行依赖注入?

这是Spring自动装配构造函数的结果。

它要做的第一件事是获取所有bean类的构造函数并对它们进行排序,首先将公共构造函数的参数数量减少,然后再将所有非公共构造函数的参数数量减少。这些是候选构造函数。

然后,它会遍历这些候选项,尝试从中生成参数

BeanFactory
。如果不能因为缺少bean或其他原因而无法跳过,则跳过候选对象。如果成功找到参数,它将根据许多因素(参数列表长度,参数类型与参数的接近程度等)为当前候选构造函数赋予权重。然后,它会检查前一个候选人的体重,如果一个人比另一个人好,就交换他们的体重。

如果在此过程结束时有候选构造函数,则Spring将使用它。

如果您说Spring在使用3 arg构造函数而不是3 arg构造函数,那么这意味着您在3 arg构造函数中没有类型之一的bean。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5092747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存