原创 java.net.SocketException:Connection reset

背景 HttpClient遠程調用HTTPS的API時,報錯java.net.SocketException:Connection reset 原因 Jdk版本差異導致的異常。由於Jdk1.7默認的是TLS的協議版本是v1.

原创 Java四捨五入保留小數點後幾位

(double) + Math.round 返回double類型 // 案例:四捨五入保留小數點後1位 double d1 = 123.456; double d2 = 654.321; double v1 = (double

原创 MySQL多個left join on關聯條件的順序

注意:下面的案例特別重要!請重視!SQL有點長,但確實是乾貨! 結論 如果存在多個left join on,請注意on後面的條件與哪個表關聯。這一條統計的SQL很重要!例如表A,B,C,A left join B on A.x =

原创 maven-javadoc-plugin打包錯誤:未知標記:date

錯誤信息 在使用maven-javadoc-plugin打包的過程時,要區分jdk1.7和jdk1.8,因爲maven-javadoc-plugin插件在jdk1.8的時候要加一個配置項,否則生成javadoc時,會報錯 插件正

原创 maven-compiler-plugin編譯錯誤:程序包javax.crypto.spec不存在

java的jre/lib包下的jar比jdk/lib的多,其中包括rt.jar、jce.jar等。在使用mvn命令編譯時,使用的是jre的rt.jar的運行環境,並且maven的環境變量僅有rt.jar的編譯依賴,如下圖。 但是

原创 查看maven可用的環境變量

mvn help:system 輸出的內容包括系統屬性和環境變量,這些環境變量都可以在pom文件中直接引用(至少大部分可以用,畢竟不會把這些都嘗試一下) =====================================

原创 Maven打包可運行jar包插件(maven-jar-plugin、maven-dependency-plugin)

可運行jar包插件,可以使用maven-assembly-plugin實現自定義打包,也可以使用maven-jar-plugin、maven-dependency-plugin,maven-assembly-plugin實際上也是

原创 git全局忽略提交文件

找到git的全局配置文件,一般是在C:\Users\lenovo下,文件名:.gitconfig,注:lenovo是我的用戶名 在.gitconfig中添加[core]及以下代碼 [user] name = yangzh

原创 JVM鎖優化

自旋鎖和自適應自旋 自旋鎖是當多個線程並行訪問共享數據時,用忙循環讓後面請求鎖的線程處於等待狀態,當自旋多次後仍然獲取不到鎖,再用傳統的方式將線程掛起。 忙循環就是用循環讓線程等待,忙循環也叫自旋。 在Java6之後,如果有線程剛

原创 Java工廠方法設計模式及實現(枚舉實現工廠方法設計模式)

簡介 工廠方法設計模式是一種創建對象的模式,這種模式將創建對象的責任轉移到工廠中。 工廠方法包含3部分內容:抽象接口、子類實現、工廠類。一般情況下工廠方法是通過傳參來判斷創建哪個子類的對象。當然,也可以通過枚舉的方式實現工廠方法設

原创 SpringMVC國際化i18n配置

國際化是什麼? 國際化是開發支持多語言和數據格式的技術。其實就是根據外部特徵動態的將本地化資源響應給用戶。 本地化資源配置文件 在SpringMVC中實現國際化,是將每一個地區的語言保存在配置文件中,配置的內容是key/value

原创 Spring數據校驗(LocalValidatorFactoryBean和MethodValidationPostProcessor的區別/@Valid和@Validated的區別)

JSR標準和Spring校驗框架 Java的JSR-303標準的數據校驗的核心接口是javax.validation.Validator,該接口根據目標對象中標註的校驗註解進行數據校驗,並得到校驗結果。 Spring也有自己的校驗

原创 Maven單元測試插件(Maven跳過單元測試)

maven編譯時有兩種跳過單元測試的方法 cmd命令行跳過單元測試 cmd命令有兩種參數跳過單元測試 mvn clean install -Dmaven.test.skip=true 不編譯不執行測試用例 mvn clean

原创 Java生成Postman表單數據

DataBuilder詳見這裏 /** * @param clazz * @param prefix 前綴 */ public static void getFormData(Class clazz, String pref

原创 Maven 無效的目標發行版: 1.8

背景 個人maven的settings.xml配置的jdk版本是1.8,而公司配置的jdk版本是1.7,我修改本地配置如下 複製settings.xml爲settings-copy.xml,修改jdk版本爲jdk7 在idea設