spring 事物合并_Spring系列合并

spring 事物合并

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 事物合并

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018/11/29 一个64位操作系统的设计与实现 03 (在Bochs上运行Boot程序)

使用命令dd强制将引导程序boot.bin写入引导扇区: dd ifboot.bin of/home/parallels/Documents/bochs-2.6.9/boot.img bs512 count1 convnotrunc 在P39页有完整的讲解命令的意思 注意: 书中使用的: of../../bochs-2.6.9/boot.img 是错误的. 使用命令: ./bochs -f .bochsrc 书中使…

怎么把python解释器配置在pycharm中_在PyCharm中配置项目(三):配置Python解释器...

PyCharm是一种Python IDE&#xff0c;其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外&#xff0c;该IDE提供了一些高级功能&#xff0c;以用于Django框架下的专业Web开发。PyCharm最新版本2019.2发布&#xff0c;功能改进提高Python语言开发效率&#…

mysql 赋给用户权限 grant all privileges on

遇到了 SQLException: access denied for localhost (using password: no) 解决办法 grant all privileges on *.* to joelocalhost identified by 1; flush privileges; 拿 joe 1 登陆 附&#xff1a; mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用…

辨析矩阵内积(hadamard、kronecker)

1. matmul product&#xff08;一般矩阵乘积&#xff09; m x p矩阵A与p x n矩阵B&#xff0c;那么称 m x n 矩阵C为矩阵A与矩阵B的一般乘积&#xff0c;记作C AB &#xff0c;其中矩阵C元素 [cij]为矩阵A、B对应两两元素之和&#xff0c;表示为&#xff1a; 例子&#xff1a…

Drools 6.5.0.Final提供

最新版本和最出色的Drools 6.5.0.Final版本现已可供下载。 这是我们先前构建的增量版本&#xff0c;重点是对6.x系列进行一些重要的改进。 您可以在此处找到更多详细信息&#xff0c;下载和文档&#xff1a; Drools网站 资料下载 文献资料 发行说明 请阅读下面的一些发行…

第一阶段总结

在这一周的冲刺周期里&#xff0c;我做了如下的事情&#xff1b; 1.在网上找到适当的图片作为软件图标&#xff1b; 2.编程出窗口的基本框架&#xff1b; 3.调整窗口的长宽高&#xff1b; 4.编写相关代码&#xff1b; 5.整合部分代码&#xff1b; 个人评分&#xff1a;99 转载于…

测试电梯的测试用例_测试用例设计经典面试题

测试用例设计经典面试题之电梯、杯子、笔、桌子、洗衣机、椅子、ATM等按测试的类型逐一测试测试类型主要分为&#xff1a;界面测试、性能测试(压力测试)、安全测试、兼容性测试几个方向。1.测试项目&#xff1a;电梯需求测试&#xff1a;查看电梯使用说明书、安全说明书等界面测…

mysql grant查看用户权限命令

本文章来给大家总结一些常用的来查看mysql用户权限命令的一些方法总结&#xff0c;在mysql中查看用户权限命令是show grants for了&#xff0c;下面我来详细介绍grants这个命令&#xff0c;有需要了解的朋友可参考。 语句 代码如下复制代码 show grants for 你的用户 比如&a…

[JSON].valueOf( keyPath )

语法&#xff1a;[JSON].valueOf( keyPath ) 返回&#xff1a;[任意类型 | null] 说明&#xff1a;获取键名路径原值&#xff0c;它保留原始值的类型 示例&#xff1a; b sysFile.binary("test.asp") 获取文件流数据 set a toJson() a.set "obj", b 将流…

任意门怎么用团发_平开门、推拉门都out了!衣柜门这样设计,实用方便又大气!...

▲ 点击蓝字“装修PLUS”&#xff0c;有关装修的问题&#xff0c;答案全在这里点击获取2020年装修精准报价冬天的时候&#xff0c;天天穿同一件外套去公司也不合适&#xff0c;但每天都换洗外套也不现实&#xff0c;所以最好的办法就是好几件外套轮流穿&#xff0c;然后换下不洗…

实践中的事件源和CQRS

任何尝试实施完全符合ACID的系统的人都知道&#xff0c;您需要做很多事情。 您需要确保可以自由创建&#xff0c;修改和删除数据库实体而不会出错&#xff0c;在大多数情况下&#xff0c;解决方案将以性能为代价。 可以用来解决此问题的一种方法是根据一系列事件而不是可变状态…

Lintcode--1(463)--整数排序

题目&#xff1a;给一组整数&#xff0c;按照升序排序&#xff0c;使用选择排序&#xff0c;冒泡排序&#xff0c;插入排序或者任何 O(n2) 的排序算法1、冒泡排序原理&#xff1a;从第一个整数开始第一趟&#xff0c;比较相邻的两个元素&#xff0c;大的放在后面&#xff1b;一…

Preparing Cities for Robot Cars【城市准备迎接自动驾驶汽车】

Preparing Cities for Robot Cars The possibility of self-driving robot cars has often seemed like a futurists dream, years away from materializing in the read world. 自动驾驶机器人汽车的可能性貌似看起来常常是未来主义者的梦想&#xff0c;在真实世界里的实现还…

百度地图no result available_【整理之路二】百度地图的路径规划和调用本机地图导航...

推荐看完之后注意一下最后的东西一、细说百度地图的路径规划路径规划主要有这么几种1.公交路径规划1.1 市内公交规划&#xff08;暂时不在这里说&#xff09;1.2 跨市/省公交规划// 导入头文件#import <BaiduMapAPI_Search/BMKSearchComponent.h>#import <BaiduMapAPI…

最短路径—Dijkstra算法和Floyd算法

Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法&#xff0c;用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展&#xff0c;直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法&#xff0c;在很多专业课…

实现两个数的交换(异或,加减)

1、 通常我们通过设置临时变量来实现两个数的交换&#xff0c;如下&#xff1a; void swap(int *a,int *b){int temp;temp*a;*a*b;*btemp;} 2、还可以通过异或来实现两个不同整数的交换&#xff0c;如下&#xff1a; void swap(int &a,int &b){tempa^b; //设a为临…

url override and HttpSession implements session

背景 HttpSession默认使用Cookie存储Session ID&#xff0c;如果在用户禁用浏览器Cookie的功能后&#xff0c;仍打算运用HttpSession来进行会话管理&#xff0c;那么可以搭配URL重写来实现。 实现方法 使用HttpServletResponse的encodeURL()方法协助产生URL。  服务器端调用r…

怎么用python写名字_python中的__name__ 到底是个什么玩意?应该怎么用到它?

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理以下文章来源于腾讯云 作者&#xff1a;Python进击者( 想要学习Python&#xff1f;Python学习交流群&#xff1a;1039649593&#xff0c;满足你的需求&…

用RAII技术管理资源及其泛型实现

前言 RAII的含义是“资源获取即初始化”。 一段看似安全的代码 首先看一段代码&#xff1a; try{int *p new int[100];// ... do somethingdelete[] p; }catch(exception &e){ // ..... } 这段代码中&#xff0c;我们先进行了动态内存分配&#xff0c;使…

使用Lambda在AWS云上使用Java

如今&#xff0c;Amazon Web Services越来越受欢迎。 Java是AWS的一等公民&#xff0c;它很容易上手。 部署应用程序有些不同&#xff0c;但是仍然很容易和方便。 AWS Lambda是一种计算服务&#xff0c;您可以在其中将代码上传到AWS Lambda&#xff0c;并且该服务可以使用AWS…