原创 FastJson PropertyNamingStrategy 轉換成JSON字符串的四種格式配置及源碼解析

FastJson在將bean轉成JSON字符串時, 默認使用CamelCase(駝峯命名)的配置; 在1.2.15版本之後,FastJson支持配置PropertyNamingStrategy,有四種配置格式: CamelCase; Pa

原创 JAVA設計模式 - 代理模式

在對象的一個業務方法完成之後, 有時候我們可能需要去添加一些新的功能(前置校驗等). 但我們又不想更改原來的代碼 , 代理模式就爲我們提供了一種解決方案 . 1 . 代理模式的定義 代理模式就是在不改變原有代碼的基礎上 , 實現對目標對象

原创 SpringBoot中fastJson返回數據展示null字段(響應值爲null時字段被過濾)

fastjson將對象轉爲json字符串給前端的時候, 如果字段的值爲null, 則該字段默認被fastJson過濾直接不展示. 而在實際項目中我們往往也是需要展示這個字段的 , 解決即增加一個fastJson序列化配置 , 設置序列化格

原创 Java數學工具類MathUtil詳解

這篇文章主要爲大家詳細介紹了Java數學工具類MathUtil的相關資料,具有一定的參考價值,感興趣的小夥伴們可以參考一下 本文實例爲大家分享了Java數學工具類MathUtil的具體代碼,供大家參考,具體內容如下

原创 SpringBoot使用RequestBodyAdvice進行統一參數處理

在實際項目中 , 往往需要對請求參數做一些統一的操作 , 例如參數的過濾 , 字符的編碼 , 第三方的解密等等 , Spring提供了RequestBodyAdvice一個全局的解決方案 , 免去了我們在Controller處理的繁瑣 .

原创 SpringBoot使用ResponseBodyAdvice進行統一響應處理

適用場景 , 返回給調用方一個統一的響應對象 , 即Controller中使用了@ResponseBody註解的方法 , 可以隨意返回Object , String , List 等 , 在該對象中進行統一處理並返回 package c

原创 SpringBoot使用ControllerAdvice和ExceptionHandler進行統一異常處理

@ControllerAdvice和@RestControllerAdvice(兩者區別和@Controller/@RestController類似 , 都只是響應內容上的區別)是Spring提供的一個全局異常處理方案 , 通過簡單的配置

原创 高級JAVA - 利用函數式接口實現通用的取並集/交集/差集進階版

在前文(高級JAVA - 利用函數式接口實現通用的取並集/交集/差集)中我們實現了利用函數式接口獲取交集/差集 , 但是隻能全部生成 , 假如我們只需要一個交集的話 , 所有代碼仍然會執行一次 . 比較浪費資源 , 故再改進一版 pac

原创 高級JAVA - 利用函數式接口實現通用的取並集/交集/差集

package com.xing.dto; import com.xing.common.utils.XDataUtil; import lombok.Data; import java.util.ArrayList; import

原创 高級JAVA - 手寫簡單的重試組件學習Spring Retry

目錄 一 . 定義註解 二 . 利用cglib代理擴展重試業務 三 . 編寫代理類 , 使用自定義的XRetryInterceptor作爲攔截器 四 . 編寫相關業務方法 , 測試代碼  五 . 測試結果 之前講了Spring Retry

原创 Spring異常重試機制 - Spring Retry

目錄 一 . 引入依賴 二 . 在啓用類或業務類上添加@EnableRetry註解啓用重試機制(在啓用類上添加全局有效 , 在業務類上添加僅當前有效) 三 . 使用@Retryable實現重試 四 . 使用@Recover執行補償方法 五

原创 CSS 實現必填項前/後添加紅色星號

1 . 常規寫法 <label><span style="color:red;">* </span>用戶名 : </label> <input type="text" value=""/> 2 . CSS寫法(更簡潔方便 , 而且便於統

原创 微服務概念詳細介紹

目錄 一、單機服務到微服務的演變 二、微服務的定義 三、微服務爲我們解決了哪些問題 四、當前微服務面臨的挑戰 五、結語 一、單機服務到微服務的演變 微服務,顧名思義就是“微小的服務”。主要就是從兩個方面進行理解,什麼是“微”?什麼是“服務

原创 Idea結合Maven的profile配置實現動態切換環境(不修改代碼)

之前的切換環境的方式 , 就是在application.properties中配置 spring.profiles.active=dev , 然後通過修改dev爲test或prod來切換項目環境 , 這樣做的話每次切換環境都要重新改一下配

原创 高級JAVA - 動態代理的實現原理和源碼分析

在之前的一篇文章中 , 我們簡單瞭解了一下代理模式(JAVA設計模式 - 代理模式) , 本篇我們來學習一下動態代理的實現原理 , 以及源碼是怎樣的 .  JDK動態代理的主要實現步驟如下 :  1 . 聲明一個handler類 , 實現