Spring高级应用之注入各类集合
2017-12-01 12:56
225 查看
先定义一个测试类,由于本文将要介绍注入各种集合时如何配置,故这个类包含各种集合,类名和属性名不好取,没有特殊含义:
?
Test类中,分别定义了List,Map,Set,Array等5种集合类型的属性,下面在Spring配置文件中,分别为这些类型的属性注入值:
?
由于集合元素有可以是基本类型值、引用容器中其他Bean、嵌套Bean或集合属性等,因此<list>、<set>、和<key>元素又可以接受如下的子元素:
value:指定集合元素是基本数据类型值或字符串类型值
ref:指定集合元素是容器中另一个Bean实例
bean:指定集合元素是一个嵌套Bean
list、set、map及props:指定集合元素值又是集合
<props>元素适用于配置Properties类型的属性,Properties类型时一种特殊的类型,其key和value都只能是字符串,故Spring配置Properties类型的属性都比较简单:每个属性项只要分别给出属性名和属性值就足够了。
当使用<map>元素配置Map类型属性时稍显复杂,因为Map类型的元素由多个<entry>组成,每个<entry>又需要配置key和value两个属性。其中<entry>属性支持以下几个属性:
key:当key是基本类型或字符串时使用
key-ref:当key类型是容器中定义的另一个Bean时使用
value:当value是基本类型或字符串时使用
value-ref:当value是容器中定义的另一个Bean时使用
Spring还提供了一个简化语法来支持Properties形参的setter方法,例如我们可以使用如下配置片段来配置Properties类型的属性:
?
虽然这种配置方式更简单,但是它也有一个缺点:属性名、属性值都只能是英文或数字,不能包含中文字符
从Spring2开始,Spring IoC容器支持集合的合并:子Bean中的集合属性可以从其父Bean的集合属性继承而来,同时,子Bean中的属性会覆盖父Bean中属性名相同的值。也就是说,子Bean的集合属性的最终值是父Bean、子Bean合并后的最终结果,下面是一个示例:
?
通过上面的配置后,child中的属性将变为:
?
?
?
value:指定集合元素是基本数据类型值或字符串类型值
ref:指定集合元素是容器中另一个Bean实例
bean:指定集合元素是一个嵌套Bean
list、set、map及props:指定集合元素值又是集合
<props>元素适用于配置Properties类型的属性,Properties类型时一种特殊的类型,其key和value都只能是字符串,故Spring配置Properties类型的属性都比较简单:每个属性项只要分别给出属性名和属性值就足够了。
当使用<map>元素配置Map类型属性时稍显复杂,因为Map类型的元素由多个<entry>组成,每个<entry>又需要配置key和value两个属性。其中<entry>属性支持以下几个属性:
key:当key是基本类型或字符串时使用
key-ref:当key类型是容器中定义的另一个Bean时使用
value:当value是基本类型或字符串时使用
value-ref:当value是容器中定义的另一个Bean时使用
Spring还提供了一个简化语法来支持Properties形参的setter方法,例如我们可以使用如下配置片段来配置Properties类型的属性:
?
从Spring2开始,Spring IoC容器支持集合的合并:子Bean中的集合属性可以从其父Bean的集合属性继承而来,同时,子Bean中的属性会覆盖父Bean中属性名相同的值。也就是说,子Bean的集合属性的最终值是父Bean、子Bean合并后的最终结果,下面是一个示例:
?
?
相关文章推荐
- Spring高级应用之注入各类集合
- Spring高级应用之注入各类集合
- Spring高级应用之注入各类集合
- Spring高级应用之注入嵌套Bean
- Spring 集合注入
- Spring系列【04】应用@Autowired注解实现Bean的注入
- Spring应用教程-2 方法注入
- Spring配置文件解析--集合注入方法
- spring学习之集合属性注入
- Spring 事务管理高级应用难点剖析
- Spring 集合注入 [ Collection Injection ]
- Spring 事务管理高级应用难点剖析: 第 2 部分
- spring下应用@Resource, @Autowired 和 @Inject注解进行依赖注入的差异
- Spring、基本类型属性和集合类型属性的注入
- Spring高级注入之Field值注入
- Spring 事务管理高级应用难点剖析: 第 1 部分
- Spring 事务管理高级应用难点剖析: 第 3 部分
- Spring、基本类型属性和集合类型属性的注入
- [Java] Spring 3.0 /id.vs.name/简单属性的注入/bean中的scope属性/集合注入/自动装配/生命周期/
- Spring-注入参数详解-[集合类型属性]