原创 Spring之校驗器Validator

Spring校驗器,參數校驗從此簡單。   image.png 應用在執行業務邏輯之前,必須通過校驗保證接受到的輸入數據是合法正確的,但很多時候同樣的校驗出現了多次,在不同的層,不同的方法上,導致代碼冗餘,浪費時間,違反DRY原則。 每

原创 Spring Boot之Swagger使用和註釋介紹

介紹 什麼是Swagger Swagger是一個規範和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。總體目標是使客戶端和文件系統作爲服務器以同樣的速度來更新。文件的方法,參數和模型緊密集成到服務器端的代碼

原创 Spring Boot之使用Swagger2構建強大的RESTful API文檔

隨着前後端分離架構和微服務架構的流行,我們使用Spring Boot來構建RESTful API項目的場景越來越多。通常我們的一個RESTful API就有可能要服務於多個不同的開發人員或開發團隊:IOS開發、Android開發、Web開

原创 Spring Boot之Swagger接口分類和參數排序問題詳解

之前通過Spring Boot 2.x基礎教程:使用Swagger2構建強大的API文檔一文,我們學習瞭如何使用Swagger爲Spring Boot項目自動生成API文檔,有不少用戶留言問了關於文檔內容的組織以及排序問題。所以,就特別開

原创 Spring Boot之使用Swagger2構建RESTful API文檔(二)

由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的用戶會用來構建RESTful API。而我們構建RESTful API的目的通常都是由於多終端的原因,這些終端會共用很多底層業務邏輯,因此我們

原创 Spring Boot之構建RESTful API與單元測試

首先,回顧並詳細說明一下在快速入門中使用的@Controller、@RestController、@RequestMapping註解。如果您對Spring MVC不熟悉並且還沒有嘗試過快速入門案例,建議先看一下快速入門的內容。 @Cont

原创 Spring Boot之實現JSR-303請求參數校驗

請求參數的校驗是很多新手開發非常容易犯錯,或存在較多改進點的常見場景。比較常見的問題主要表現在以下幾個方面: 僅依靠前端框架解決參數校驗,缺失服務端的校驗。這種情況常見於需要同時開發前後端的時候,雖然程序的正常使用不會有問題,但是開發者忽

原创 Spring Boot之Controller

註解 用途 @Controller 處理http請求 @RestController spring 4 新加註解,@RestController = @Controller + @ResponseBody , @RequestMappin

原创 Spring Boot之spring-boot-starter-actuator監控接口詳解

spring-boot-starter-actuator 是什麼 一句話,actuator是監控系統健康情況的工具。 - 怎麼用? 1. 添加 POM依賴   <dependency> <grou

原创 ReentrantLock和Synchronized區別,公平鎖和非公平鎖區別

1 ReentrantLock和synchronized區別   (1) synchronized 是Java的一個內置關鍵字,而ReentrantLock是Java的一個類。   (2) synchronized只能是非公平鎖。而Ree

原创 Spring Boot之工程結構推薦

Spring Boot框架本身並沒有對工程結構有特別的要求,但是按照最佳實踐的工程結構可以幫助我們減少可能會遇見的坑,尤其是Spring包掃描機制的存在,如果您使用最佳實踐的工程結構,可以免去不少特殊的配置工作。 典型示例 以下結構是比較

原创 Spring Boot之JpaRepository

結構.png 首先我們創建一個數據庫映射的實體類,上一節講了的 package com.alun; import javax.persistence.Entity; import javax.persistence.Generate

原创 Spring Boot之使用國產數據庫連接池Druid

上一節,我們介紹了Spring Boot在JDBC模塊中自動化配置使用的默認數據源HikariCP。接下來這一節,我們將介紹另外一個被廣泛應用的開源數據源:Druid。 Druid是由阿里巴巴數據庫事業部出品的開源項目。它除了是一個高性能

原创 Java鎖:悲觀/樂觀/阻塞/自旋/公平鎖/閉鎖,鎖消除CAS及synchronized的三種鎖級別

JAVA LOCK 大全 [TOC] 一、廣義分類:樂觀鎖/悲觀鎖 1.1 樂觀鎖的實現CAS (Compare and Swap) 樂觀鎖適合低併發的情況,在高併發的情況下由於自旋,性能甚至可能悲觀鎖更差。 CAS是一種算法,CAS(V

原创 Spring boot 之JPA實現hibernate自動創建表

JPA (Java Persistence API) 定義了一系列對象持久化的標準,目前實現這一規範的產品有Hibernate、TopLink等 直接上練習 項目結構   項目結構.png 一、配置 在pom.xml中添加   <de