Spring IoC/DI 06-XML 注入 Bean 的属性

本文详细解析了在Spring框架中如何使用XML配置文件进行Bean的属性注入,包括property、constructor-arg、p命名空间的不同注入方式,以及value与ref的区别。同时介绍了list、array、set、map等集合类型的注入方法,value属性与value标签的使用差异,自动装配的原理及应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML 注入 Bean 的属性

注入方式:

  1. property注入==set方法注入,指定属性名
  2. constructor-arg注入==构造器注入,默认按顺序执行,也可指定顺序(index,从0开始)、属性名(name)、类型(type)
  3. p命名空间注入==set方法注入,指定属性名

注入时value和ref的区别

  1. 基本类型:使用value指定
  2. String:使用value指定
  3. 非String的引用类型:使用ref指定

注入类型

  1. list:property-list-value/ref/bean
  2. array:property-array-value/ref/bean
  3. set:property-set-value/ref/bean
  4. map:property-map-entry-(key-value)+value/ref/bean
  5. props:property-props-prop(key属性)

value属性和value标签的区别

value属性value标签
参数值位置写在 value 的属性值中,必须加双引号写在首尾标签()中间,不加双引号,否则双引号也将作为属性值的一部分
type 属性有,可通过 type 属性指定数据类型(全称)
参数值包含特殊字符一种处理方法:使用 xml 预定义的实体引用两种处理方法:一、使用 <![CDATA[ ]]>标记;二、使用 xml 预定义的实体引用
null值value标签换成null标签
空字符串value属性(双引号)中为空value标签中为空

常用 xml 预定义的实体引用如下:

实体引用表示符号
<<
>>
&&

自动装配

自动装配适用于 ref 指定的属性

启用某个 bean 标签的自动装配,需要显式指定 autowire 属性的值为 byName|byType|constructor

  1. byName:寻找IoC容器中是否存在 id 为该 bean 的属性的名称,存在则自动装配
  2. byType:寻找IoC容器中是否存在 class 为该 bean 的属性的类型,存在则自动装配,只适用于包含一个该 class 的 bean
  3. constructor:寻找IoC容器中是否存在 class 为该 bean 的构造方法参数的类型,存在则自动装配,只适用于包含一个该 class 的 bean(本质上还是 byType)

启用 IoC 容器中所有 bean 标签的自动装配,可在头文件 beans 标签中显式指定 default-autowire 属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值