SpringIOC容器-xml配置bean-反射构造器-属性注入(基本数据类型及其包装器,String类型)

一、实验使用实体类

 Car有2个构造器

//无参构造
public Car() {}
//有参构造
public Car(String brand, double speed, double price) {
    this.brand = brand;
    this.speed = speed;
    this.price = price;
}

 

1.xml中配置Car的bean,通过空参构造器反射构造的bean

<bean id="car" class="com.llf.bean.Car"/>

 2.xml中配置Car的bean,通过空参构造器反射构造的bean,在通过setter方法注入值

注意这里的name的值匹配的setter方法名,不是属性名。

字面量值,可以使用Value标签或者value属性注入

 

<bean id="car" class="com.llf.bean.Car">
    <property name="brand" value="宝马"></property>
    <property name="price" value="2000000"></property>
    <property name="speed" >
    <value>300.00</value>
  </property>
</bean>

 

 

 

 3.xml中配置Car的bean,通过有参构造器反射构造bean,注入值

1)这里默认按照构造器的顺序赋值(不推荐)

<bean id="car" class="com.llf.bean.Car">
    <constructor-arg value="奥迪"></constructor-arg>
    <constructor-arg value="300"></constructor-arg>
    <constructor-arg value="200000"></constructor-arg>
</bean>

2)这里是匹配构造器的参数名赋值(不推荐)  如果有特殊字符,采用<![CDATA[    ]]> 

 

<bean id="car3" class="com.llf.bean.Car">
    <constructor-arg name="brand" >
        <value><![CDATA[<奔驰>]]></value>
    </constructor-arg>
    <constructor-arg name="price" value="300000"></constructor-arg>
    <constructor-arg name="speed" value="350"></constructor-arg>
</bean>

 

 

 

3)这里是匹配参数位置和参数名赋值(推荐) 

<bean id="car" class="com.llf.bean.Car">
    <constructor-arg index="0" name="brand" value="长安"></constructor-arg>
    <constructor-arg index="2" name="price" value="40000"></constructor-arg>
    <constructor-arg index="1" name="speed" value="250"></constructor-arg>
</bean>

 

4)这里是匹配参数位置和参数类型赋值(推荐)

<bean id="car" class="com.llf.bean.Car">
    <constructor-arg index="0" type="java.lang.String" value="福特"></constructor-arg>
    <constructor-arg index="1" type="double" value="280"></constructor-arg>
    <constructor-arg index="2" type="double" value="140000"></constructor-arg>
</bean>

 

5)这里是参数位置,参数类型,参数名称一同匹配(推荐)

<bean id="car6" class="com.llf.bean.Car">
    <constructor-arg index="0" type="java.lang.String" name="brand" value="五菱宏光"></constructor-arg>
    <constructor-arg index="1" type="double" name="speed" value="300"></constructor-arg>
    <constructor-arg index="2" type="double" name="price" value="20000"></constructor-arg>
</bean>

 

posted @ 2020-04-17 11:31  linglongfang  阅读(283)  评论(0)    收藏  举报