Spring学习笔记(二)Bean配置

本文详细介绍了Spring框架中构造器注入的方法及应用实例。通过一个具体的Car类示例,展示了如何利用XML配置文件来实现构造器注入,以及如何区分重载的构造器。此外还解释了如何在Spring容器中正确获取Bean。
摘要由CSDN通过智能技术生成
一、Spring 配置Bean
1.1 依赖注入有两种办法
  1. 属性注入(设值注入)
  2. 构造器注入
1.2 构造器注入的小示例
创建一个对象,并提供一些构造器,覆写一下toString方法:
package com.lbh.spring.beans;

public class Car {
private String brand;
private String corp;
private double price;
private int maxSpeed;
public Car(String brand, String corp, double price, int maxSpeed) {
super();
this.brand = brand;
this.corp = corp;
this.price = price;
this.maxSpeed = maxSpeed;
}
public Car(String brand, String corp, double price) {
super();
this.brand = brand;
this.corp = corp;
this.price = price;
}

@Override
public String toString() {

return "牌子:"+this.brand+"厂子:"+this.corp+"价格:"+this.price+"速度:"+this.maxSpeed;
}

}
 配置文件里面运用构造器注入配置如下:
<!-- 通过构造器方法来配置 bean 的属性 -->
<bean id="car" class="com.lbh.spring.beans.Car">
<constructor-arg value="宝马" index="0"></constructor-arg>
<constructor-arg value="武汉" index="1"></constructor-arg>
<constructor-arg value="1000" index="2"></constructor-arg>
<constructor-arg value="200" index="3"></constructor-arg>
</bean>
 经过实验,如果不加index,那么注入过程按照由上到下的属性顺序进行;如果加上index那么按照index标号来,但如果对象中并没有相应的构造器方法,那么输出会报错。除了根据index判断,还可以根据type判断。
使用构造器注入,可以通过指定参数位置和类型,以区分重载的构造器
注:当Bean唯一时,可以通过getBean(Car.class);的形式获得该Bean对象,如果不唯一,则只能通过getBean("helloworld")的形式获取。
如:配置两个Car的Bean,用 getBean(Car.class);会报出:
No qualifying bean of type 'com.lbh.spring.beans.Car' available: expected single matching bean but found 2: car,car2
 
car和car2两个Bean的值故意设置不同,打印后发现两个Bean分别调用了Car方法的两个构造器,输出了两个Bean的属性信息,如下:
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值