除了在Bean定义文件中直接指定字符串值,使用<ref>直接指定参考至其他的Bean,或是使用<bean>标签并指定"class"属性来指定依赖对象之外,spring也支持隐式的自动绑定,您可以透过类型(byType)或名称(byName)将某个Bean实例绑定至其他Bean对应的属性,比如
<bean id="helloBean" class="....." autowire="byType">
...
</bean>

解决方案 »

  1.   

    我认为工作原理是这样的:
    当spring在读取bean的配置文件时,读到某个bean的autowire属性时会去找class指定的类,然后根据类中的属性或方法中的参数类型(或名字autowire=byname时)查找相应的类实例化,然后完成依赖注射。
    只是我的个人理解,不知道对不对。
      

  2.   

    class A
    {
     private B b;
     void setB(B b){this.b=b;
     }
    }
    class B
    {....
    }
    非自动
    <bean name="a" class="A">
      <property name="b"><ref bean="b"></property>
    </bean>
    <bean name="b" class="B"/>
    如果按名字自动:
    <bean name="a" class="A"/>
    <bean name="b" class="B"/>
    按类型同上。
    这样,你通过bean工厂取得类的时候,这两种配置方法都是成功的。
      

  3.   

    其实autowire就是依赖自动注入的一种方法,