為什么很多人看完Spring源碼記不住,是腦子有問題嗎?當(dāng)然不是!是因?yàn)槟銢]有掌握學(xué)習(xí)源碼的技巧。 看完源碼的我… 以前我學(xué)習(xí)Spring、Spring boot源碼,只能去...
為什么很多人看完Spring源碼記不住,是腦子有問題嗎?當(dāng)然不是!是因?yàn)槟銢]有掌握學(xué)習(xí)源碼的技巧。 看完源碼的我… 以前我學(xué)習(xí)Spring、Spring boot源碼,只能去...
目錄整合Spring-Cloud-Alibaba服務(wù)發(fā)現(xiàn)nacos實(shí)現(xiàn)負(fù)載均衡Ribbon聲明式HTTP客戶端Feign服務(wù)容錯(cuò)Sentinel消息驅(qū)動(dòng)的微服務(wù)Springc...
首先把pom引入。為了打印對(duì)象頭 直接開搞,新建一個(gè)SyncDemo類,建立兩個(gè)變量,int a 與 float b 新建一個(gè)SyncTest類,整個(gè)main方法,里面打印一...
canal的概念這里我就不多說了,以下附上git鏈接查看:https://github.com/alibaba/canal[https://github.com/alibab...
JApiDocs是一個(gè)無需額外注解、開箱即用的SpringBoot接口文檔生成工具。 前言 編寫和維護(hù)API文檔,對(duì)于后端程序員來說,是一件惱人但又不得不做的事情,我們都不喜...
1.首先大家要打開idea的插件配置使用快捷鍵“Command + ,”打開Preferences,選中Plugins插件配置并在文本框中搜索Jrebel關(guān)鍵字進(jìn)行安裝 也可...
BeanHelper 是自己封裝的,調(diào)用了spring的BeanUtils.copyProperties方法。
代碼如下:
package com.markor.scrm.clue.utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 實(shí)現(xiàn)Bean屬性的拷貝,把一個(gè)Bean的屬性拷貝到另一個(gè)Bean,前提是其屬性名一致或部分一致
*
* @author huyi.zhang
*/
@Slf4j
public class BeanHelper {
/**
* 實(shí)體類屬性拷貝
* 2019年8月1日
* 20點(diǎn)43分
*
* @param source 源數(shù)據(jù)
* @param target 目標(biāo)實(shí)體字節(jié)碼
* @param <T> 指定類型
* @return 目標(biāo)實(shí)體
*/
public static <T> T copyProperties(Object source, Class<T> target, String... ignoreProperties) {
try {
T t = target.newInstance();
BeanUtils.copyProperties(source, t, ignoreProperties);
return t;
} catch (Exception e) {
return null;
}
}
/**
* List集合屬性拷貝
* 2019年8月1日
* 20點(diǎn)43分
*
* @param sourceList 源集合
* @param target 目標(biāo)集合字節(jié)碼
* @param <T> 指定類型
* @return 目標(biāo)集合
*/
public static <T> List<T> copyWithCollection(List<?> sourceList, Class<T> target, String... ignoreProperties) {
return sourceList.stream().map(s -> copyProperties(s, target, ignoreProperties)).collect(Collectors.toList());
}
/**
* Set集合屬性拷貝
* 2019年8月1日
* 20點(diǎn)44分
*
* @param sourceList 源集合
* @param target 目標(biāo)集合字節(jié)碼
* @param <T> 指定類型
* @return 目標(biāo)集合
*/
public static <T> Set<T> copyWithCollection(Set<?> sourceList, Class<T> target) {
return sourceList.stream().map(s -> copyProperties(s, target)).collect(Collectors.toSet());
}
}
解決spring data jpa 一對(duì)多,多對(duì)一雙向依賴引用遞歸,查詢出現(xiàn)java.lang.StackOverflowError: null問題我們?cè)陂_發(fā)項(xiàng)目中,會(huì)經(jīng)常根據(jù)不同的業(yè)務(wù)設(shè)計(jì)出不同的實(shí)體關(guān)聯(lián)關(guān)系表,用到的最多的就是一對(duì)多,多對(duì)一,大部分用到的都是單向關(guān)聯(lián)。在這里,我們要解決雙向關(guān)聯(lián)查詢數(shù)據(jù)出現(xiàn)死循環(huán)、棧溢...
1. 前言 本文的源碼是基于JDK1.7,JDK1.8中HashMap的實(shí)現(xiàn),引入了紅黑樹,在后面的文章會(huì)寫到。后面還有一篇LinkedHashMap的解析:圖解Linked...
以下內(nèi)容摘抄自《淘寶技術(shù)這十年》,是大牛給技術(shù)人員的一些學(xué)習(xí)方法和建議: 正明:找到自己感興趣的,花時(shí)間投進(jìn)去,通過實(shí)踐后的知識(shí)積累比看書本有用的多。我看過一本操作系統(tǒng)方面的...
說到動(dòng)態(tài)代理模式,大家一定會(huì)想到spring的AOP概念,今天我們來說一下java的動(dòng)態(tài)代理模式 概念:為另一個(gè)對(duì)象提供一個(gè)替身患者占位符以控制對(duì)這個(gè)對(duì)象的訪問。 代理模式有...
今天我們來介紹一下JAVA RMI,大家或許之前從來沒聽說過這個(gè)詞,但是如果你用過dubbo、spring cloud等分布式服務(wù)治理框架,理解起來RMI是很輕松的,因?yàn)樗鼈?..
在java中有一個(gè)接口叫做“Serializable”的接口,所有的類都可以實(shí)現(xiàn)它擁有“可序列化”的能力。并且沒有任何的方法需要被實(shí)現(xiàn),只是用來告訴Java虛擬機(jī)它可以被序列...
之前給大家推薦了一些我自己常用的VS Code插件,很多同學(xué)表示很受用,并私信我說要再推薦一些IDEA插件。作為一名職業(yè)Java程序員/業(yè)余js開發(fā)者,我平時(shí)還是用IDEA比...