目前Spring Boot已經成爲主流的Java Web開發框架,熟練掌握Spring Boot並可以根據業務來定製Spring Boot成爲一個Java開發者的必備技巧,可是老是零零碎碎不夠系統,因此萌生了從零搭建一個後端腳手架的想法。並把這個過程當中的細節思路和以前的一些文章結合起來展示給你們,但願可以實實在在幫助學習Spring Boot的同窗,固然能力有限若是有不足之處還請多多指教。mysql
首先,這個定位不是徹底沒有接觸過Spring Boot的初學者,由於Spring Boot的簡單入門並非特別難,找一些其餘大佬的入門教程學習一陣就能夠很快的入門;而是面向具備Spring Boot的學習經驗和不夠熟練的同窗們,同時提供一些能夠開箱即用的解決方案到實際開發中。web
其實我不太喜歡那種相互依賴整了好幾個模塊,DAO、Service、Controller各搞一個層,而後層層依賴。對於單體項目來講這種結構把簡單的事情複雜化了,容易致使依賴管理混亂。因此通常的簡單項目我都建議採用下面的結構:redis
kono-dependencies是一個依賴版本管理的模塊,負責kono-app全部的依賴版本、依賴選型的管理。原則上kono-app全部的依賴都應該來自kono-dependencies並且版本從kono-dependencies繼承,這樣能作到依賴版本的集中控制,使得技術選型和兼容性獲得保證。spring
以Maven爲例,kono-dependencies只會包含一個pom.xml,並且打包方式packaging
只能是pom
。全部的依賴都被dependencyManagement
管理。sql
<groupId>cn.felord</groupId> <artifactId>kono-dependencies</artifactId> <version>1.0.0.RELEASE</version> <!--打包方式--> <packaging>pom</packaging> <dependencyManagement> <!--被管理的依賴--> </dependencyManagement>
這裏有一個小技巧,咱們把Spring Boot的父依賴加入管理,就等於把項目的Spring Boot全部的官方starter歸入了管理:docker
<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>
固然若是有業務須要能夠分更多的模塊,可是依賴管理必定要清晰、可控。
版本號的規則也是頗有學問的。這裏我選用了最容易理解的方式,也是Spring Boot採用的版本號命名風格。數據庫
如下都是Java技術棧特定場景下的經常使用選擇:json
在一開始,這裏面的一些技術並不會集成進去,隨着迭代會在合適的時機加入它們,甚至會加入這裏面沒有的技術棧。後端
經過從零搭建腳手架的過程您能夠按部就班的學到如何整合一些功能到項目中,同時還能看到一些實際開發中才能遇到的一些問題以及解決這些問題的思路。同時若是在這個過程當中您有好的建議和問題也能夠和我進行溝通,感謝持續關注,共同提升。緩存
關注公衆號:Felordcn 獲取更多資訊