Skip to content

注入spring bean

注入springbean方式有两种:

  • constractor注入
    • 通过constractor方法,在<constructor-arg>标签中注入
    xml
      <bean class="com.wyizd.di.Student">
          <constructor-arg name="name" value="王大锤" />
          <constructor-arg name="age" value="20" />
      </bean>
  • setter注入
    • 通过setter方法,在<property>标签中注入
    java
      <bean id="wdc" class="com.wyizd.di.Student">
          <property name="name" value="王大锤"></property>
          <property name="age" value="20"></property>
      </bean>
    • tip:这里需要注意一点,如果有有参的构造方法,必须要包含constroctor注入

注入基本类型

  • 常量
    • <property name="name" value="王大锤"></property>
  • null值
    • <property name="name"><null/></property>
  • 特殊符号
    • <property name="name">&gt.&lt</property>
    • <property name="name">[!CDATA[>.<]]</property>

注入引用类型

  • 注入对象
xml
    <bean id="math" class="com.wyizd.di.Score"></bean>
    <bean id="wdc" class="com.wyizd.di.Student">
        <property name="score" ref="math"></property>
    </bean>
  • 注入数组
xml
    <bean id="math" class="com.wyizd.di.Score">
        <property name="name" value="math"></property>
        <property name="cent" value="100"></property>
    </bean>
    <bean id="chinese" class="com.wyizd.di.Score">
        <property name="name" value="chinese"></property>
        <property name="cent" value="80"></property>
    </bean>
    <bean id="english" class="com.wyizd.di.Score">
        <property name="name" value="english"></property>
        <property name="cent" value="70"></property>
    </bean>

    <bean id="wdc" class="com.wyizd.di.Student">
        <property name="scores">
            <array>
                <ref bean="math"></ref>
                <ref bean="chinese"></ref>
                <ref bean="english"></ref>
            </array>
        </property>
    </bean>
  • 注入list集合,和array类似
xml
<bean id="math" class="com.wyizd.di.Score">
        <property name="name" value="math"></property>
        <property name="cent" value="100"></property>
    </bean>
    <bean id="chinese" class="com.wyizd.di.Score">
        <property name="name" value="chinese"></property>
        <property name="cent" value="80"></property>
    </bean>
    <bean id="english" class="com.wyizd.di.Score">
        <property name="name" value="english"></property>
        <property name="cent" value="70"></property>
    </bean>

    <bean id="wdc" class="com.wyizd.di.Student">
        <property name="scores">
            <list>
                <ref bean="math"></ref>
                <ref bean="chinese"></ref>
                <ref bean="english"></ref>
            </list>
        </property>
    </bean>
  • 注入map集合
xml
<bean id="math" class="com.wyizd.di.Score">
        <property name="name" value="math"/>
        <property name="cent" value="100"/>
    </bean>
    <bean id="chinese" class="com.wyizd.di.Score">
        <property name="name" value="chinese"/>
        <property name="cent" value="80"/>
    </bean>
    <bean id="english" class="com.wyizd.di.Score">
        <property name="name" value="english"/>
        <property name="cent" value="70"/>
    </bean>

    <bean id="wdc" class="com.wyizd.di.Student">
        <property name="centMap">
            <map>
                <entry key="math" value-ref="math"/>
                <entry key="chinese" value-ref="chinese"/>
                <entry key="english" value-ref="english"/>
            </map>
        </property>
    </bean>