原创 軟件設計七大原則:(一)開閉原則

一、開閉原則簡介 定義:一個軟件實體如類、模塊和函數應該對擴展開放,對修改關閉。 表現:用抽象構建框架,用實現擴展細節。 優點:提高軟件系統的可複用性及可維護性。 二、代碼實現 public interface C

原创 軟件設計七大原則:(六)里氏替換原則

一、裏式替換原則簡介 定義:如果對每一個類型爲T1的對象o1 ,都有類型爲T2的對象o2 ,使得以T1定義的所有程序P在所有的對象o1都替換成o2時,程序P的行爲沒有發生變化,那麼類型T2是類型T1的子類型。 t:類型(typ

原创 軟件設計七大原則:(七)合成複用原則

一、合成複用原則簡介 定義:儘量使用對象組合/聚合,而不是繼承關係達到軟件複用的目的。 聚合has-A和組合contains-A。 優點:可以使系統更加靈活,降低類與類之間的耦合度,一個雷的變化對其他類造成的影響相對較少。 二

原创 關於Java代碼中的日誌處理規範

一、使用slf4j 使用門面模式的日誌框架,有利於維護和各個類的日誌處理方式統一。 實現方式統一使用: Logback框架。 二、打印日誌的正確方式 1.什麼時候應該打印日誌 當你遇到問題的時候,只能通過debug功能來確定問

原创 SpringBoot中獲取ApplicationContext的方法

一、需求描述 在使用SpringBoot框架開發的過程中,我們有時候需要通過ApplicationContext獲取一些bean。 這時候,就需要我們先獲取ApplicationContext。 那麼什麼是ApplicationC

原创 Jenkins的環境變量使用說明

一、使用方法 下面的環境變量可以在配置Jenkins Job的時候用得到,可以用在Execute shell、Execute Windows batch command、文本框 上加上編輯好的的shell腳本。 1.Windows

原创 docker開啓外部訪問

一、問題描述 有些時候,需要docker開啓外部訪問。 1.例如我們使用docker的可視化客戶端工具portainer來統一管理在不同服務器上的docker時,就需要開啓外部訪問,否則是連接不到的。 2.使用jenkins時,有

原创 jenkins修改時間,設置時區

一、問題描述 最近在搭建jenkins等一些列自動化構建部署的工具,jenkins每次構建後,後顯示相應的時間,但是我發現時間不對,那應該就是時區問題,下面說下解決方案。 二、解決方案 方案1:修改用戶配置 時區針對不同用戶可以直

原创 CSS3中的transition和transform屬性

一、前言 開門見山的說,transition、transform和translate這三者經常有人搞混,先把這三者做一個簡單解釋: transform是 轉換,指的是改變所在元素的外觀,它有很多種手段(轉換函數)來改變外觀,例如

原创 @TransactionalEventListener的使用和實現原理

一、問題描述 平時我們在完成某些數據的入庫後,發佈了一個事件,此時使用的是@EventListener,然後在這個事件中,又去對剛纔入庫的數據進行查詢,從而完成後續的操作。例如(數據入庫=>對入庫數據進行查詢審覈),這時候會發現,

原创 Promise的使用詳解

一、什麼是Promise Promise 是異步編程的一種解決方案: 從語法上講,Promise是一個對象,從它可以獲取異步操作的消息;從本意上講,它是承諾,承諾它過一段時間會給你一個結果。 Promise有三種狀態:pendin

原创 mybatis批量更新報錯解決辦法

一、問題描述 前段時間主要再用spring data jpa,最近又回到了mybatis的使用上,發現好多東西都忘了。 然後編寫批量更新語句時候,發現老是更新失敗,但是從控制檯獲取的sql語句又能夠在數據庫中正常執行,這個小坑讓我

原创 element-ui清除表單驗證提示語

一、需求描述: 使用了element-ui的表單, 點擊發布當物流單號爲空時,會出現提示,如果我通過上方下拉框切換了物流名稱,我希望能夠主動的清楚下方的紅色提示信息。 二、解決方案 1.編寫表單代碼,綁定下拉框change事件

原创 SpringData JPA save和saveAndFlush的區別

隨着最近Spring Data JPA 使用的越來越多,覺得有些問題還是需要記錄一下的。 一、主要區別 在saveAndFlush()上,此命令中的更改將立即刷新到DB。 使用save(),就不一定了,它可能只暫時保留在內存

原创 vuex:使用常量作爲函數名

mutation-types:將常量放在單獨的文件中,方便協作開發。 // mutation-types.js export const SOME_MUTATION = 'SOME_MUTATION' // sto