XML 注入 Bean 的属性
注入方式:
- property注入==set方法注入,指定属性名
- constructor-arg注入==构造器注入,默认按顺序执行,也可指定顺序(index,从0开始)、属性名(name)、类型(type)
- p命名空间注入==set方法注入,指定属性名
注入时value和ref的区别
- 基本类型:使用value指定
- String:使用value指定
- 非String的引用类型:使用ref指定
注入类型
- list:property-list-value/ref/bean
- array:property-array-value/ref/bean
- set:property-set-value/ref/bean
- map:property-map-entry-(key-value)+value/ref/bean
- 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
- byName:寻找IoC容器中是否存在 id 为该 bean 的属性的名称,存在则自动装配
- byType:寻找IoC容器中是否存在 class 为该 bean 的属性的类型,存在则自动装配,只适用于包含一个该 class 的 bean
- constructor:寻找IoC容器中是否存在 class 为该 bean 的构造方法参数的类型,存在则自动装配,只适用于包含一个该 class 的 bean(本质上还是 byType)
启用 IoC 容器中所有 bean 标签的自动装配,可在头文件 beans 标签中显式指定 default-autowire 属性
网友评论