Spring 属性注入和构造器注入

属性注入:

<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文件中

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值