Spring Collection合并是我第一次遇到的功能,它是对StackOverflow 问题的回答

这是一种创建基本集合(列表,集合,地图或属性)并在其他Bean中修改此基本集合的方法,下面通过一个示例对此进行最好的解释-

考虑一个Person类,其字段包含一个地址列表:

public class Person {private List<Address> addresses;
..
}

假设所有Person实例都有一组公共地址,可以使用抽象的person Bean通过以下方式指定这些地址:

<bean name='basePerson' class='Person' abstract='true'><property name='addresses'><list><bean class='Address' p:street='Street1' p:state='State1' p:zip='001'></bean><bean class='Address' p:street='Street2' p:state='State2' p:zip='002'></bean><bean class='Address' p:street='Street3' p:state='State3' p:zip='003'></bean></list></property>
</bean>

现在,可以使用“集合合并”功能以这种方式指定除basePerson的地址外还具有地址的Person Bean实例–请注意list的'merge = true'属性:

<bean name='person1' class='Person' parent='basePerson'><property name='addresses'><list merge='true'><bean class='Address' p:street='Street4' p:state='State4' p:zip='004'></bean></list></property>
</bean>

集合合并还可以与<set />,<map />和<props />一起使用

在Spring 3.1和更高版本中,一个更简单的选项可能只是使用@Configuraion和@Bean选项,因为然后可以使用Java代码直接处理合并,例如,上述xml bean配置的等效@Configuration:

@Configuration
public class CollectionConfig{private List<Address> baseAddresses(){return Lists.newArrayList(new Address('Street1', 'State1', '001'), new Address('Street2', 'State2', '002'), new Address('Street3', 'State3', '003'));}@Beanpublic Person person1(){Person person1 = new Person();person1.setAddresses(baseAddresses());person1.getAddresses().add(new Address('Street4', 'State4', '004'));return person1;}
}

参考: Spring Collection由我们的JCG合作伙伴 Biju Kunjummen在all和其他博客中合并 。

翻译自: https://www.javacodegeeks.com/2012/10/spring-collection-merging.html

Spring系列合并相关推荐

  1. spring 事物合并_Spring系列合并

    spring 事物合并 Spring Collection合并是我第一次遇到的功能,它是对StackOverflow 问题的回答 这是一种创建基本集合(列表,集合,地图或属性)并在其他Bean中修改此 ...

  2. 手撸Spring系列13:MyBatis(实战篇)

    说在前头: 笔者本人为大三在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,发布的文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正. ...

  3. 深入理解Spring系列之六:bean初始化

    <深入理解Spring系列之四:BeanDefinition装载前奏曲>中提到,对于非延迟单例bean的初始化在finishBeanFactoryInitialization(beanFa ...

  4. @autowired注解_品Spring:对@Autowired和@Value注解的处理方法(文末附spring系列资源合集)...

    作者:编程新说李新杰 出自:微信公众号"编程新说" 原文:品Spring:对@Autowired和@Value注解的处理方法 在Spring中能够完成依赖注入的注解有JavaSE提 ...

  5. Spring 系列,第 2 部分: 当 Hibernate 遇上 Spring

    为什么80%的码农都做不了架构师?>>>    在这个系列的 前一期中,我介绍了 Spring 框架的 7 个模块,包括 Spring AOP 和控制反转(IOC)容器.然后我用一个 ...

  6. Spring 系列: Spring 框架简介

    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架. 在这篇由三部 ...

  7. 深入理解Spring系列之三:BeanFactory解析

    转载 https://mp.weixin.qq.com/s?__biz=MzI0NjUxNTY5Nw==&mid=2247483824&idx=1&sn=9b7c2603093 ...

  8. Spring 系列,第 3 部分: 进入 Spring MVC

    在 Spring 系列 的第 3 部分中,我介绍 Spring MVC 框架.就像在以前的文章中一样,我用银行示例介绍如何建模和构建简单的应用程序.示例应用程序包含了已经学过的一些技术(例如依赖注入) ...

  9. Spring系列之集成MongoDB的2种方法,你知道嘛?

    Spring系列之集成MongoDB的2种方法,你知道嘛? MongoDB是最流行的NoSQL数据库,SpringBoot是使用Spring的最佳实践.今天带大家讲一讲SpringBoot集成Mong ...

最新文章

  1. Android MIME类型结构
  2. 搭建eclipse版的ssm+maven+tk.mybatis+redis及mybatis+spring多数据源配置集成的demo
  3. TCP的粘包和拆包及Netty中的解决方案
  4. GDCM:显示GDCM Dict的测试程序
  5. 面试题:如何设计一个高并发的系统?
  6. 在unity向量空间内绘制几何(2):计算球体的表面坐标
  7. 2019年终总结-如果这是一场电影
  8. 在.net 当中如何XML序列化一个Collection
  9. VUE如何关闭Eslint的方法
  10. Java项目:微信小程序点餐系统(java+微信小程序+Mysql)
  11. CentOS 迁移SVN以及可视化管理工具iF.SVNAdmin
  12. 用CSS实现花里胡哨的按钮切换效果
  13. (转)电脑内外接口全程图解
  14. ubuntu 中的流程图绘制软件
  15. 老毛桃PE工具去除捆绑软件的方法
  16. PS小知识(五)——羽化(图片拼接后去缝、自然过渡渐变)
  17. c语言难学吗?怎么学C语言?
  18. Android使用xml自定义软键盘效果(附源码)
  19. 微信公众号的前端热门文章及链接(不定期更新)
  20. Hadoop分布式文件系统 (HDFS)

热门文章

  1. k8s往secret里导入证书_K8S之Secret
  2. thinking-in-java(21)并发2
  3. 搭建一个简单的Spring boot+maven项目
  4. stripe pay_J2Pay –实施网关
  5. java掌握_掌握Java 11的Constantdynamic
  6. 502无法解析服务器标头_编写下载服务器。 第二部分:标头:Last-Modified,ETag和If-None-Match...
  7. JDK 14 / JEP 305模式匹配“ Smart Casts”实例
  8. 内置对象和内置函数_内置假对象
  9. php cdi_教程:编写自己的CDI扩展
  10. sql 动态写入数据库字段_批处理写入,动态SQL和参数化SQL,数据库的性能如何?...