根据多次反复试验,目前看起来注入规则如下,小伙伴们如果发现有不正确的,欢迎指出
Spring 版本:4.3.2REALEASE
前提:只有手动指定过name的bean才能通过byName方式找到
extends和implements也算type匹配
步骤如下:
如果@Resource没有指定name,则根据字段名称自动设置name
如果@Resource没有指定type,则根据字段类型自动设置type
如果byName找到了对应的bean并且type匹配,则注入该bean,type不匹配则报错。
如果byName找不到对应的bean,则byType找,如果只找到一个匹配的bean则注入,否则报错。
感觉和网上说的好像不太一样,因此写在这里日后参考,如果有测试结果不同的欢迎讨论。