
1. 前言
目前Spring Boot已經成為主流的Java Web開發框架,熟練掌握Spring Boot并能夠根據業務來定制Spring Boot成為一個Java開發者的必備技巧,但是總是零零碎碎不夠系統,所以萌生了從零搭建一個后端腳手架的想法,并把這個程序中的細節思路和之前的一些文章結合起來展現給大家,希望能夠實實在在幫助學習Spring Boot的同學,當然能力有限如果有不足之處還請多多指教,
2. 面向的群體
首先,這個定位不是完全沒有接觸過Spring Boot的初學者,因為Spring Boot的簡單入門并不是特別難,找一些其他大佬的入門教程學習一陣就可以很快的入門;而是面向具有Spring Boot的學習經驗和不夠熟練的同學們,同時提供一些可以開箱即用的解決方案到實際開發中,
3. 專案結構介紹
其實我不太喜歡那種相互依賴整了好幾個模塊,DAO、Service、Controller各搞一個層,然后層層依賴,對于單體專案來說這種結構把簡單的事情復雜化了,容易導致依賴管理混亂,所以一般的簡單專案我都建議采用下面的結構:

kono-dependencies是一個依賴版本管理的模塊,負責kono-app所有的依賴版本、依賴選型的管理,原則上kono-app所有的依賴都應該來自kono-dependencies而且版本從kono-dependencies繼承,這樣能做到依賴版本的集中控制,使得技術選型和兼容性得到保證,
以Maven為例,kono-dependencies只會包含一個pom.xml,而且打包方式packaging只能是pom,所有的依賴都被dependencyManagement管理,
<groupId>cn.felord</groupId>
<artifactId>kono-dependencies</artifactId>
<version>1.0.0.RELEASE</version>
<!--打包方式-->
<packaging>pom</packaging>
<dependencyManagement>
<!--被管理的依賴-->
</dependencyManagement>
這里有一個小技巧,我們把Spring Boot的父依賴加入管理,就等于把專案的Spring Boot所有的官方starter納入了管理:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 其它依賴 -->
</dependencies>
</dependencyManagement>
當然如果有業務需要可以分更多的模塊,但是依賴管理一定要清晰、可控,
4. 版本號
版本號的規則也是很有學問的,這里我選用了最容易理解的方式,也是Spring Boot采用的版本號命名風格,

-
Major 主版本號,當有非兼容性的變更時,遞增主版本號,
-
Minor 次版本號,當以可向后兼容的方式增加了功能時,遞增次的版本號,
-
Patch 補丁版本號,當有向后兼容的bug修復時,遞增補丁版本號,
-
Label 標記,用來區分開發版、快照版、里程碑版、正式發行版,
5. 技術選型
以下都是Java技術堆疊特定場景下的常用選擇:
- springboot 基礎整合框架
- servlet4 web 標準
- undertow 或者tomcat web 容器
- spring cache 快取抽象層
- spring security 安全框架
- json web token 安全框架token技術
- mybatis plus 3 ORM增強
- spring data jpa (選)
- redis 快取中間件
- mysql 資料庫
- mapstruct bean轉換器,編譯期使用
- lombok bean簡化工具
- swagger2 檔案(開發測驗)
- docker 容器技術
在一開始,這里面的一些技術并不會集成進去,隨著迭代會在合適的時機加入它們,甚至會加入這里面沒有的技術堆疊,
6. 最后
通過從零搭建腳手架的程序您可以循序漸進的學到如何整合一些功能到專案中,同時還能看到一些實際開發中才能遇到的一些問題以及解決這些問題的思路,同時如果在這個程序中您有好的建議和問題也可以和我進行溝通,感謝持續關注,共同提高,
關注公眾號:Felordcn 獲取更多資訊
個人博客:https://felord.cn
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107439.html
標籤:Java
