纯 flash 网站,怎么增加网站收录,wordpress网站绑定多个域名,沧州网站建设运营公司欢迎观看《Spring Framework实战》视频教程 集合
list/、set/、map/和props/元素分别设置Java集合类型list、set、map和properties的属性和参数。以下示例显示了如何使用它们#xff1a; bean idmoreComplexObject classlist/、set/、map/和props/元素分别设置Java集合类型list、set、map和properties的属性和参数。以下示例显示了如何使用它们 bean idmoreComplexObject classexample.ComplexObject
!-- results in a setAdminEmails(java.util.Properties) call --
property nameadminEmails
props
prop keyadministratoradministratorexample.org/prop
prop keysupportsupportexample.org/prop
prop keydevelopmentdevelopmentexample.org/prop
/props
/property
!-- results in a setSomeList(java.util.List) call --
property namesomeList
list
valuea list element followed by a reference/value
ref beanmyDataSource /
/list
/property
!-- results in a setSomeMap(java.util.Map) call --
property namesomeMap
map
entry keyan entry valuejust some string/
entry keya ref value-refmyDataSource/
/map
/property
!-- results in a setSomeSet(java.util.Set) call --
property namesomeSet
set
valuejust some string/value
ref beanmyDataSource /
/set
/property
/bean 映射键或值的值或设置值也可以是以下任何元素
bean | ref | idref | list | set | map | props | value | null 集合合并
Spring容器还支持合并集合。应用程序开发人员可以定义父级list/、map/、set/或props/元素并让子级list/、map/、set/或props/元素继承和覆盖父级集合中的值。也就是说子集合的值是父集合和子集合元素合并的结果子集合元素覆盖父集合中指定的值。
关于合并的这一节讨论了父子bean机制。不熟悉父bean和子bean定义的读者可能希望在继续之前阅读相关部分。
以下示例演示了集合合并
beans
bean idparent abstracttrue classexample.ComplexObject
property nameadminEmails
props
prop keyadministratoradministratorexample.com/prop
prop keysupportsupportexample.com/prop
/props
/property
/bean
bean idchild parentparent
property nameadminEmails
!-- the merge is specified on the child collection definition --
props mergetrue
prop keysalessalesexample.com/prop
prop keysupportsupportexample.co.uk/prop
/props
/property
/bean
beans 请注意在子bean定义的adminEmails属性的props/元素上使用了mergetrue属性。当容器解析并实例化子bean时生成的实例具有一个adminEmails Properties集合其中包含将子bean的adminEmail集合与父bean的adminEmails集合合并的结果。以下列表显示了结果
administratoradministratorexample.com
salessalesexample.com
supportsupportexample.co.uk 子Properties集合的值集继承了父props/的所有属性元素子支持值的值覆盖了父集合中的值。
这种合并行为同样适用于list/、map/和set/集合类型。在list/元素的特定情况下与list集合类型相关的语义即有序值集合的概念得以保持。父级的值位于子级列表的所有值之前。对于Map、Set和Properties集合类型不存在排序。因此对于容器内部使用的关联Map、Set和Properties实现类型所基于的集合类型没有有效的排序语义。 集合合并的局限性
您不能合并不同的集合类型如Map和List。如果您尝试这样做则会抛出相应的Exception。必须在较低的继承子定义上指定合并属性。在父集合定义上指定合并属性是多余的不会导致所需的合并。 强类型集合
由于Java对泛型类型的支持您可以使用强类型集合。也就是说可以声明一个Collection类型使其只能包含例如String元素。如果您使用Spring将强类型的Collection依赖注入bean则可以利用Spring的类型转换支持以便在将强类型Collection实例的元素添加到Collection之前将其转换为适当的类型。以下Java类和bean定义显示了如何做到这一点
Java public class SomeClass {
private MapString, Float accounts;
public void setAccounts(MapString, Float accounts) {
this.accounts accounts;
}
} beans
bean idsomething classx.y.SomeClass
property nameaccounts
map
entry keyone value9.99/
entry keytwo value2.75/
entry keysix value3.99/
/map
/property
/bean
/beans 当something bean的accounts属性准备好进行注入时关于强类型MapStringFloat的元素类型的泛型信息可以通过反射获得。因此Spring的类型转换基础结构将各种值元素识别为Float类型并将字符串值9.99、2.75和3.99转换为实际的Float类型。