首页 > 编程语言 > 详细

SpringIOC容器-xml配置bean-反射构造器-setter注入或构造器注入

时间:2020-04-17 12:53:42      阅读:91      评论:0      收藏:0      [点我收藏+]

一、实验使用实体类

技术分享图片

 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方法名,不是属性名。

<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"></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)这里是匹配构造器的参数名赋值(不推荐)

<bean id="car" class="com.llf.bean.Car">
    <constructor-arg name="brand" value="奔驰"></constructor-arg>
    <constructor-arg name="speed" value="350"></constructor-arg>
    <constructor-arg name="price" value="300000"></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>

 

SpringIOC容器-xml配置bean-反射构造器-setter注入或构造器注入

原文:https://www.cnblogs.com/linglongfang/p/12718247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!