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>

浙公网安备 33010602011771号