Spring注入方式(三种):标签:set,name,ref,Spring,telMap,注解,注入,IOC,属性 From: https://blog.51cto.com/u_15907719/6047301
1、set注入
<bean id="将要创建对象名" class="要创建的对象的属性全类名">
<!--通过property标签给对象的属性赋值
name:set:方法中的属性名 value:属性值;只能赋予基本类型的值
set注入方法:调用实体类中的set方法-->
<property name="age" value="1000"/>
<property name="name" value="王八"/>
<!--ref:用来引入引用类型的数据(其他的对象)-->
</bean>
补充:类的成员变量 ≠ 属性(set方法后的名称)
2、构造注入
<!--constructor-arg:构造参数-->
<bean id="car1" class="com.spring.DI04.Cat">
<!--index:指定参数在构造方法中的下标,从0开始-->
<constructor-arg value="A6" index="1" name="type"/>
<constructor-arg value="奥迪" index="0"/>
<!--type:指定参数的数据类型-->
<constructor-arg value="400000" index="2" type="double"/>
<constructor-arg value="240" index="3"/>
</bean>
补充:给属性赋特殊字符的值
1、转义符:< < > > &
2、CADATA标签:<value><![CDATA[内容]]></value> 只能放在标签中,不能作为属性值
3、P命名空间注入
注意:需要先添加声明 xmlns:p="http://www.springframework.org/schema/p"
<!--p命名空间-->
<bean id="book1" class="com.spring.DI05.Book" p:id="100" p:name="红楼梦"/>
<bean id="person" class="com.spring.DI05.Person"
p:age="20" p:name="张三" p:CFList-ref="gfList"
p:hobbies="乒乓,游泳,篮球" p:telMap-ref="telMap"/>
<!--声明一个list,并引用id名-->
<util:list id="gfList">
<!--<ref>
<bean id="gf" class="com.spring.DI05.GF"
</ref>-->
<value>张三</value>
<value>李四</value>
</util:list>
<util:map id="telMap">
<entry key="移动卡" value="234567891"/>
<entry key="联通卡" value="234567891"/>
</util:map>