spring bean的初始化以及属性注入是在创建该对象完毕后就set的,该对象先执行变量初始化再执行构造方法,初始化时含有autowide注解的成员变量一开始为null的,最后再执行set方法,此时才会有值。在set时会如果成员变量对象已经有了,则直接set,否则去创建对应的成员变量对象,如果该成员变量没有被spring容器扫描,那么就会报错。所有的被扫描的类型都会先放入内存,否则每次都要遍历很麻烦