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

2020-02-21  本文已影响0人  周老一员

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 的属性值中,必须加双引号 写在首尾标签(<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 属性

上一篇 下一篇

猜你喜欢

热点阅读