原创 Zipkin Server 無法啓動的問題

加入 Zipkin Server 由於需要收集 Spring Cloud 系統的跟蹤信息,以便及時地發現系統中出現的延遲升高問題並找出系統性能瓶頸的根源,所以在 Spring Cloud 項目中創建 Zipkin Server。

原创 Spring Boot + JQuery Ajax 實現文件上傳功能

(一)需求 在 Spring Boot 項目中實現文件下載功能 後,項目需要進一步實現 Excel 文件上傳功能,已供後端代碼讀取 Excel 中單元格的數據。本文的代碼在下載功能的基礎之上繼續擴展。 (二)代碼 2.1 後端代碼

原创 爲你的 Java Web 項目加入 Swagger

Swagger for Spring Boot Swagger 可用於生成、描述、調用和可視化 RESTful 風格接口的API,是一套規範和完整的開發框架,並且能對接口進行單獨測試。 Spring Boot 是目前對 Swagg

原创 基於 Spring Boot + MyBatis + PageHelper + Thymeleaf 的數據分頁展示

(一)需求 簡單的前端分頁展示功能:以表格的方式展現每頁數據,在表格標題下填入對應的字段值,頁腳處顯示當前頁、總記錄頁數和條數,一鍵跳轉至首尾頁和相鄰頁。在頁眉處按照始末時間查詢記錄。 (二)代碼 2.1 後端代碼 控制層 在控

原创 Spring Boot 日誌框架

(一)門面模式 在平常的系統開發中,日誌起到了重要的作用,日誌寫得好對於線上問題追蹤有着很大的幫助。一個好的日誌框架,既要方便易用,也要有較好的性能,減少日誌輸出對系統內存、CPU 的影響。 在學習 Spring Boot 的日誌

原创 Spring Boot + JPA 最佳實踐

(一)前言 隨着 Java 技術和微服務技術逐漸廣泛應用,Spring Cloud、Spring Boot 逐漸成爲 Java 開發的主流框架,ORM 框架也因此得到重視。 縱觀目前主流的 ORM 框架,MyBatis 以靈活著稱

原创 Spring Bean 的生命週期

前言 本文主要介紹 Spring IoC 容器如何管理 Bean 的生命週期。 在應用開發中,常常需要執行一些特定的初始化工作,這些工作都是相對比較固定的,比如建立數據庫連接,打開網絡連接等,同時,在結束服務時,也有一些相對固定的

原创 Java 中的代理:靜態代理、JDK 動態代理和 Cglib 動態代理

準備工作 代理簡介 代理,簡單來說,就是代替原有操作者,即委託者去處理一件事。在 Java 中代理一般分爲兩種,靜態代理和動態代理,動態代理又分爲 JDK 動態代理和 Cglib 動態代理。 創建項目 創建一個簡單的純後端的 Ma

原创 Java 淺拷貝和深拷貝

淺拷貝 對於數據類型是基本數據類型的字段,淺拷貝會直接進行值傳遞,也就是將該屬性值複製一份給新的對象。因爲是兩份不同的數據,所以對其中一個對象的該字段值進行修改,不會影響另一個對象拷貝得到的數據。也就是說基本數據類型可以自動實現

原创 Java 單例模式的線程安全實現

單例模式概念 引用維基百科: 單例(Singleton)模式,也叫單子模式,是一種常用的軟件設計模式。在應用這個模式時,單例對象的類必須保證只有一個實例存在。許多時候整個系統只需要擁有一個的全局對象,這樣有利於我們協調系統整體的

原创 Spring Boot + Flyway 管理數據庫版本

Flyway 介紹 Flyway是一個簡單開源數據庫版本控制器(約定大於配置),主要提供migrate、clean、info、validate、baseline、repair等命令。它支持SQL(PL/SQL、T-SQL)方式和J

原创 Spring MVC 底層源碼解讀

實例流程圖 組成 DispatcherServlet:HTTP請求處理程序/控制器的中央分配器,Spring MVC 項目的入口。 HandlerMapping:處理器映射 根據 request 找到請求對應的 Hand

原创 Java 線程池

線程池規範 《阿里巴巴 Java 開發手冊》對線程池的規範創建和使用做了定義。 由線程池提供線程 即不要按照以下方式創建線程: Thread thread = new Thread(new Runnable() { @O

原创 Spring 框架總覽

Spring 簡介 Spring 是一個開源應用框架,旨在降低應用程序開發的複雜度。 它是輕量級、鬆散耦合的。 它具有分層體系結構,允許用戶選擇組件,同時還爲 J2EE 應用程序開發提供了一個有凝聚力的框架。 它可以集成其他框架

原创 Spring 中的事務註解 @Transactional

@Transactional 特性 @Transactional註解只能應用到 public 修飾符上,對其他修飾符不起作用,但不報錯。 @Transactional 一般加到實現類或實現類方法上,不要加到接口或接口方法上。 @