属性注入:
<bean id="1" class="po.A">
<!-- 属性注入 -->
<property name="nameyayaya" value="诗诗"></property>
<property name="age" value="19"></property>
</bean>
在applicationContext.xml中配置,property 标签的name属性对应Javabean的set方法,value的值传入对应的set方法中。
注意:如果在javabean中添加了某个字段但是又没有为其添加相应的set和get方法,那么spring注入实例化bean会失败
构造器注入:
<bean id="2" class="po.B">
<constructor-arg value="小白"></constructor-arg>
<constructor-arg value="19"></constructor-arg>
</bean>
constructor-arg标签的value值对应Javabean构造器里的参数,默认是按照顺序传过去的。如果有重载的构造函数,需要在constructor-arg标签中添加index属性或者type属性来消除指定不唯一
特殊符号:
如果属性值为 <BMW>之类,包含了特殊符号 要用<![CDATA[<BMW>]]包裹起来,如
<bean id="car" class="po.Car">
<property name="name">
<value><![CDATA[<BMW>]]></value>
</property>
<property name="speed" value="240"></property>
</bean>
属性值是一个javabean:
①在内部创建一个javabean:
<bean id="1" class="po.A">
<!-- 属性注入 -->
<property name="name" value="诗诗"></property>
<property name="age" value="19"></property>
<property name="car">
<bean class="po.Car">
<property name="name" value="AUDO"></property>
<property name="speed" value="160"></property>
</bean>
</property>
②引用外部的bean:
<bean id="car" class="po.Car">
<property name="name">
<value><![CDATA[<BMW>]]></value>
</property>
<property name="speed" value="240"></property>
</bean>
<bean id="1" class="po.A">
<!-- 属性注入 -->
<property name="name" value="诗诗"></property>
<property name="age" value="19"></property>
<property name="car" ref="car"></property>
</bean>
为级联属性赋值:
为级联属性赋值时首先要保证对象已经初始化
<bean id="1" class="po.A">
<!-- 属性注入 -->
<property name="name" value="诗诗"></property>
<property name="age" value="19"></property>
<property name="car" ref="car"></property>
<property name="car.speed" value="100"></property>
</bean>
集合属性:
属性值中有一个集合类型,如C类中有个 private List<Car> cars属性
<bean id="car" class="po.Car">
<property name="name">
<value><![CDATA[<BMW>]]></value>
</property>
<property name="speed" value="240"></property>
</bean>
<bean id="car2" class="po.Car">
<property name="name" value="AUDO"></property>
<property name="speed" value="170"></property>
</bean>
<bean id="3" class="po.C">
<property name="name" value="土豪"></property>
<property name="age" value="20"></property>
<property name="cars">
<list>
<ref bean="car"/>
<ref bean="car2"/>
</list>
</property>
</bean>
小s
在Spring中如果一个类被写入了applicationContext.xml文件中,那么在这个类文件的旁边就会有个小s标注,便于我们观察
如图,D就没有被引入applicationContext.xml文件中