这似乎是预期的行为。该文档说:
按名字
按属性名称自动布线。Spring寻找与需要自动装配的属性同名的bean。例如,如果一个bean定义被设置为按名称自动装配,并且包含一个master属性(即,它具有setMaster(..)方法),Spring将查找一个名为master的bean定义,并使用它来设置属性。
我想这意味着您已经default-autowire="byName"
在applicationContext.xml中指定了。
但是,重构可能会以不可预测的方式影响此操作。这就是为什么(我认为)建议根据类型切换到自动装配,并通过使用来消除Bean歧义的原因。