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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370822.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370822.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370822.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS 水平垂直居中

方法一&#xff1a; 容器確定寬高&#xff1a;知識點&#xff1a;transform只能設置在display為block的元素上。 <head> <meta charset"UTF-8"> <title>Title</title> <style type"text/css"> #container{…

linux怎么進入文件夾_Linux基礎命令《上》

上一節介紹了VMware中安裝centos7以及克隆系統&#xff0c;之中用到的幾個命名還都是開發不常用的&#xff0c;這節課就準備講解一下入門的Linux命名&#xff0c;都是日常使用的。首先呢&#xff0c;我們進入系統后&#xff0c;得先知道我是誰&#xff0c;我在哪兒&#xff1f;…

UML學習(一)-----用例圖

1、什么是用例圖 用例圖源于Jacobson的OOSE方法&#xff0c;用例圖是需求分析的產物&#xff0c;描述了系統的參與者與系統進行交互的功能&#xff0c;是參與者所能觀察和使用到的系統功能的模型圖。它的主要目的就是幫助開發團隊以一種可視化的方式理解系統的功能需求&#xf…

首款鴻蒙系統終端n,榮耀智慧屏正式發布,首款搭載鴻蒙系統終端,家庭C位新選擇...

原標題&#xff1a;榮耀智慧屏正式發布&#xff0c;首款搭載鴻蒙系統終端&#xff0c;家庭C位新選擇智能手機的普及率越來越高&#xff0c;其所能夠承擔的功能也越來越多&#xff0c;電視機對于很多中青年的用戶來講&#xff0c;更多的時候就是個擺設。在家庭中&#xff0c;看電…

oracle如何保證數據一致性和避免臟讀

oracle通過undo保證一致性讀和不發生臟讀 1.不發生臟讀2.一致性讀3. 事務槽&#xff08;ITL&#xff09;小解1.不發生臟讀 例如&#xff1a;用戶A對表更新了&#xff0c;沒有提交&#xff0c;用戶B對進行查詢&#xff0c;沒有提交的更新不能出現在用戶的查詢結果中 舉例并通個d…

Google Guava BloomFilter

當Guava項目發布版本11.0時&#xff0c;新添加的功能之一是BloomFilter類。 BloomFilter是唯一的數據結構&#xff0c;用于指示元素是否包含在集合中。 使BloomFilter有趣的是&#xff0c;它將指示元素是否絕對不包含或可能包含在集合中。 永遠不會出現假陰性的特性使BloomFil…

php 編程祝新年快樂_用于測試自動化的7種編程語言

導讀&#xff1a;本文重點介紹測試自動化中排名前七位的編程語言。當人們想要開始做自動化測試&#xff0c;此時卻需要開發自動化測試腳本&#xff0c;也就是要學習一門編程語言。那么&#xff0c;我們怎樣邁出這一步&#xff1f;也有你已經精通一種編程語言&#xff0c;也可以…

Day1 了解web前端

Day1 了解web前端 一.職業發展路線: 前端頁面制作、前端開發、前端架構師 二.1)前端工程師主要職責: 利用HTML/CSS/JavaScript等各種Web技術進行客戶端產品的開發。完成客戶端程序&#xff08;也就是瀏覽器端&#xff09;的開發&#xff0c;同時結合后臺技術模擬整體效果&am…

已阻止應用程序訪問圖形硬件_玩轉智能硬件之Jetson Nano(三)深度學習環境搭建...

0、前言iotboy&#xff1a;玩轉智能硬件&#xff08;一&#xff09;Jetson Nano安裝篇?zhuanlan.zhihu.comiotboy&#xff1a;玩轉智能硬件&#xff08;二&#xff09;Jetson Nano配置篇?zhuanlan.zhihu.com在玩轉智能硬件&#xff08;一&#xff09;和&#xff08;二&#x…

Vue.js開發環境搭建的介紹

包含了最基礎的Vue.js的框架&#xff0c;包含了打包工具和測試工具&#xff0c;開發調試的最基本的服務器&#xff0c;不需要關注細節&#xff0c;只需關注Vuejs對項目的實現 npm在國內的網絡使用較慢&#xff0c;所以推薦下載安裝淘寶的鏡像 1&#xff1a; 2&#xff1a;安裝c…

html文件轉換html格式,pdf文件怎么轉換成html格式

PDF文件怎么轉換成html格式呢&#xff1f;html格式其實就是網頁格式&#xff0c;PDF文件和網頁文件一般情況下是兩種完全不搭邊的格式&#xff0c;但是不可否定的是辦公室的多樣化總有人會有這樣的需求&#xff0c;只要有需求就會有其相應的解決方案。我們可以利用PDF轉Word一樣…

Eclipse中的Github Gists

我想描述有關在Eclipse中集成GitHub Gists的簡單步驟。 有幾個來源促使我這樣做&#xff1a; Eclipse的GitHub Mylyn連接器 EGit / GitHub /用戶指南 http://eclipse.github.com 我一直在使用Eclipse Java EE發行版&#xff0c;其中已經安裝了Mylyn插件&#xff1a; 1.通…

CSS3景深-perspective

3D視圖正方體&#xff1a; 1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>CSS3景深-perspective</title>6 </head>7 <style>8 #div1{9 position: rel…

python pool_派松水潭(Python Pool)

派松水潭(Python Pool)旅游景點類型&#xff1a;名勝Roebourne Winternoom Road , Roebourne , Western Australia , 6718Email:roetourbigpond.net.auWebsite:www.pilbaracoast.com派松水潭(Python Pool)坐落于羅伯恩(Roebourne)以南風景如畫的米爾斯特姆-奇切斯特國家公園內。…

【BZOJ4262】Sum 單調棧+線段樹

【BZOJ4262】Sum Description Input 第一行一個數 t&#xff0c;表示詢問組數。第一行一個數 t&#xff0c;表示詢問組數。接下來 t 行&#xff0c;每行四個數 l_1, r_1, l_2, r_2。Output 一共 t 行&#xff0c;每行一個數 Sum。Sample Input 4 1 3 5 7 2 4 6 8 1 1 9 9 9 9 1…

父類一實現serializable_我的java基礎學習易錯點和易忘點總結(一)

一.繼承A:子類只能繼承父類所有非私有的成員(成員方法和成員變量)B:子類不能繼承父類的構造方法&#xff0c;但是可以通過super關鍵字去訪問父類構造方法。二.繼承中構造方法的關系A:子類中所有的構造方法默認都會訪問父類中空參數的構造方法B:為什么呢?因為子類會繼承父類中的…

Avocado 安裝和簡單測試

1.Avocado 安裝 1.1 通過包安裝 像Fedora可以通過rpm包進行安裝&#xff0c;其他通過RPM管理的發行版需要自己制作相關包。Avocado同樣支持DEP包的安裝可以在contrib/packages/debian找到。 Fedora 首先通過下面的命令獲取倉庫配置文件。 sudo curl https://repos-avocadoproje…

html文檔主體的根標簽,2 HTML簡介標簽嵌套和并列關系文檔聲明

HTML&#xff1a;Hyper Text Markup Language 超文本標簽語言(hyper&#xff1a;精力旺盛的 markup:標記 n noun)HTML不是編程語言&#xff0c;而是一種標記語言(就是一套標記標簽)&#xff0c;用于描述網頁&#xff0c;是網頁制作必備的。超文本是指頁面內可以包含圖片、鏈接…

深入克隆

在繼續克隆概念之前&#xff0c;讓我們用對象創建概念刷新基礎知識。 使用new運算符創建對象時&#xff0c;對象將在堆中獲取內存分配。 堆中的對象創建 在Java中&#xff0c;理想情況下僅通過引用變量修改對象&#xff0c;即僅復制對象的內存地址&#xff0c;因此原始對象中…

c# 口口亂碼_c# 亂碼解決方法

1 設置web.configrequestEncoding"utf-8"responseEncoding"utf-8"fileEncoding"utf-8"/>如果相應使用gb2312 &#xff0c;則html頁面也要設置相同&#xff0c;解決亂碼。如果為 utf-8 &#xff0c;則相應的html文件的屬性要轉換成utf-8保存&a…