1、属性注入主要通过setXxx()方法注入bean的属性值或依赖对象。灵活。最常用的方式
2、属性注入要求bean 要提供一个默认的无参构造函数,并提供需要注入的属性的setXxx()方法。否则会报类似
java.lang.NoSuchMethodException
: com.modle.World.<init>() 异常(没有无参的构造函数)
因为, spring 先调用默认的无参构造函数,然后在通过反射调用setXX()方法,注入属性的值。
3、spring只关心有没有对应的setXxx()方法,至于有没有对应的成员属性,不做要求。但是一般按照约定俗成的规定,都会提供这个成员变量。
4、每一个属性对应一个<property>标签 name 是属性的名称<value>标签是注入的属性值
<
bean
id
=
"car"
class
=
"com.model.Car"
>
<
property
name
=
"price"
><
value
>
123
</
value
></
property
>
<!-- 放入的值要和类里的类型一致 -->
<
property
name
=
"brand"
><
value
>
123
</
value
></
property
>
<!-- 字符串类型的属性赋值的时候比较灵活,传入的都会被当成字符串 -->
</
bean
>
类型不一致时抛的异常
java.lang.NumberFormatException
: For input string: "xxx"