原创 dart基礎之環境安裝

有幸主導一個小APP開發。決定使用flutter,flutter是Google開源的一個基於dart語言的SDK,可以通過一份代碼快速構建Android和ios的app。想使用flutter就需要先學會使用dart。 今天記錄一下關於da

原创 對於現代軟件開發的個人觀點

        個人覺得今天這份思考很重要,比純技術乾貨還重要,作爲leader如果沒有一個好的管理模式,作爲員工如果不能掌握一個對的協作方法,作爲社會的一份子如果不能掌握溝通的技巧,再好的技術也無濟於事。最終在團隊中只會是那個罵天罵地的

原创 Vs Code 開發常用快捷鍵

最近開發一個app,用到vscode,但是用慣了idea,沒有快捷鍵簡直無法幹活。vscode快捷鍵還是很不一樣的。記錄一下。 通用的一些就不說了。 此處使用mac版: 註釋當前選定行 cmd+/   刪除當前行  cmd+shift+K

原创 spring boot 使用 nacos作爲註冊和配置中心

nacos是阿里開源的註冊、配置中心,可以實現服務的註冊發現,配置的動態刷新等。nacos提供了集羣模式,單機模式,還有一個內置了數據庫的包。實現開箱即用。 這裏單獨說一下nacos的namespace概念,nacos在所有註冊和配置之外

原创 spring cloud + nacos 多環境部署

我們開發過程中,要經歷本地開發環境、dev開發環境、qa測試環境、(甚至還有uat演示環境)、生產環境。 那麼我們就需要將服務做多環境處理。我們現在使用都是spring boot架構,它可以根據配置文件的配置去匹配子文件後綴,不過在Spr

原创 spring 事務傳播行爲

參考資料: Spring事務傳播機制&隔離級別 Spring事務管理與傳播機制詳解以及使用實例 一般,我們使用的都是spring提供的聲明時事務。這裏只做聲明時事務的記錄。 寫代碼時,一個方法需要事務,那麼我們會使用spring的註解@t

原创 遞歸模式 實現java對象的複製

最近寫了一個對象複製工具。用到了一個遞歸模式。 複製功能是實現了,並且性能相較於BeanUtils高將近一倍。但是還是沒有解決深複製問題。最近太忙了就沒繼續做。後續再看看能否解決深複製問題吧。 @Slf4j public class M

原创 在Spring項目下實現策略模式

話不多說。先講一下我理解的策略模式。 策略模式 將類的行爲抽象出來,使其可以在運行時改變。用於改善代碼中過多的if else也可以用於區分業務。 spring下使用策略模式,通過spring的IOC自動注入,來匹配我們要實現的策略。  

原创 JAVA基礎 之 Thread源碼淺析

好久沒看源碼了,上次寫完一部分常見的集合類的源碼分析之後,今天抽空看了看Thread的源碼。今天也來記錄分析一下。 我們都知道創建線程,有兩種方案。一個是繼承Thread一個是實現runnable接口。具體的方法就不寫了。我們直接從Thr

原创 mysql 事務ACID

事務4個特性 1,原子性 當前事務中所有sql,要麼全部執行成功,要麼全部不執行。 2,一致性 事務執行前後,不能破壞邏輯有一致性。 比如:A轉賬給B,A轉出了,B轉入時異常了。這樣必須全部回滾,不然不符合一致性。也不符合原子性。這個操作

原创 分佈式事務的幾種方案

最近正在給公司做分佈式事務解決方案。也看了不少資料,對分佈式事務的幾個方案也有了一些自己的理解。這裏寫個博客記錄一下學習過程,再說說結合業務相關內容。 CAP原則 CAP原則指出三個原則:一致性,可用性,還有分區容錯性。 一致性:指分佈

原创 mysql innodb引擎學習

最近回頭看了一下《mysql從入門到放棄》這本書,專門看了看我們經常使用的innodb引擎,現在記錄一下學習的內容吧。 有錯誤請指正。 Mysql5.5後默認引擎爲innodb innodb特性 innodb支持事務,支持行鎖,支持外鍵。

原创 使用fastjson實現對象的深複製

最近遇到一個坑,之前的代碼將一個訂單對象中的明細,一個list,進行了分組。然後這個list就改變了。再往後,他們認爲這個list沒變,又將這個list作爲最終數據進行了發送。這就導致這個明細回傳錯誤。 查出問題後,我就想,將這個對象如果

原创 spring cloud consul 使用以及和eureka的區別

現在在做供應鏈項目,項目還是一套微服務架構體系。註冊中心從之前用的eureka換到了consul。架構的理由估計是eureka不更新了吧。所以來學習一下consul的內容。 最近比較忙,我也不再單獨查資料了,就把自己知道的寫出來好了。如有

原创 建造者模式構建javabean

今天寫一個構建者模式,通常我們使用javaBean都是定義私有屬性,生成getset方法。這種方式很常見,在屬性較少的時候,可以很好地使用,但是一旦屬性爆炸時,那麼意味着我們會有無窮無盡的set代碼要寫。比如我們現在一個主表有50個字段左