创建对象的几种方式

调用无参数构造器

<bean id="user1" class="com.mattrix42.User"></bean>

调用有参数构造器

<bean id="str" class="java.lang.String">
    <constructor-arg value="Jack"></constructor-arg>
</bean>
<!--创建user对象,且负责-->
<bean id="user" class="com.mattrix42.User">
    <constructor-arg index="0" type="int" value="1000"></constructor-arg>
    <constructor-arg index="1" type="String" value="Jack"></constructor-arg>
    <!--<constructor-arg index="1" type="String" ref="str"></constructor-arg>-->
</bean>

工厂

  • 静态方法

    <bean id="" class=""  factory-method=""></bean>
  • 非静态方法

    <bean id="factory" class=".."></bean>
    <bean id=""  factory-bean="factory"   factory-method="实例方法"></bean>

反射

处理对象的依赖关系

接受注入的set方法接受的参数建议使用接口,即使实现类变了方法也不用变

构造函数赋值

set 方法注入值

  • 普通字段赋值

    <bean id="user" class="com.matrix42.User">
        <property name="id" value="1000"></property>
        <property name="name" value="Jack"></property>
        <!--也可以用ref-->
    </bean>
  • 集合属性 (list/map/property)

    <bean id="user" class="com.matrix42.User">
        <property name="list">
            <list>
                <value>cn</value>
                <value>usa</value>
            </list>
        </property>
    </bean>
    <property name="list">
        <map>
            <entry key="cn" value="China"></entry>
            <!-- 可以使用key-ref和value-ref -->
        </map>
    </property>
     <!-- 装配null -->
     <property name="listnull">
          <null/>
     </property>