分支
安裝了git這麼強大的版本控制系統,卻不好好利用着實可惜;在開發之前我們先來創建個分支吧!
在開發中,將每次的操作都放在master分支中不是一個明智的選擇,master分支裏一般存放的是一個完整的,穩定的版本;
- 首先,我們可以使用
git checkout -b dev
創建一個開發分支,並切換到該分支上 - 其次,在開發分支的基礎上我們可以使用
git checkout -b feature
創建一個功能分支,並切換到功能分支上 - 完成了這個功能分支上的開發後,使用
git commit
提交修改 - 使用
git checkout dev
回到我們的開發分支 - 使用
git merge feature
將我們的功能分支合併到開發分支上 - 使用
git commit
提交我們的開發分支
下面這張圖也許表達的不是很好,希望能幫助到你們理解
接下來打開項目,我們在 idea 中操作, 爲自己創建一個開發分支(dev)
VCS -> Git -> Branches 或使用快捷鍵 Ctrl+Shift+ `
//這裏我已經創建過dev分支了,所以會提示錯誤
同樣的步驟,創建一個功能分支;我個人習慣使用feature_功能名的命名,由於接下來我們要進行swagger的配置,所以分支名稱使用feature_swagger
注意要勾選Checkout branch!!!
這樣才能創建feature_swagger功能分支並切換到該分支上。
現在我們可以進入下一步swagger的配置了。
Gradle和Maven
同學問我的時候我才發現,大部分人沒接觸過這兩個東西。這裏做個簡單的解釋
用一個不是非常恰當的比喻來說的話:
我們寫代碼,相當於製造一輛車,
但是如今的技術如此發達,很多東西已經爲我們準備好了。
比如:輪子,發動機,各種各樣的小零件,爲我們造車的人提供了非常大的遍歷,現在我們不需要自己造輪子了,可以把別人造好的輪子直接拿過來用
那輪子去哪拿呢? 這就要提到我們的Maven了,它就相當於一個倉庫,裏面存放了各種各樣別人造好的優秀的輪子。
那每次都要往那個倉庫裏跑,拿輪子,導入到項目中,未免有些煩人,怎麼辦?這時候Gradle就啓作用了,你給它個倉庫地址,告訴它要取什麼,取什麼版本的輪子,它就能幫你取回來,並自動導入到項目中。
Swagger
Swagger簡介
官方文檔:https://swagger.io/docs/specification/about/
後端編寫的接口,前端在使用時,一定需要一個接口文檔,但編寫接口文檔是一個相對費時的事情;swagger則能夠自動的生成接口文檔,並提供一個網頁給前端測試,大大提高了我們開發的速度。
下載Swagger
首先我們來到maven倉庫,搜索swagger2
選擇最新的2.9.2的版本
選擇Gradle版本,複製
粘貼在build.gradle中
接着回到maven倉庫中,我們搜索swagger ui
同樣選中最新的版本,選中Gradle,將配置複製到build.gradle中
我們的build.gradle應該多出這兩條代碼
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
在刷新gradle之前,建議將compile替換成implementation 簡單來說,可以在一定程度上加快編譯速度,具體可以
引用一個我感覺很不錯的,別人的解釋https://www.jianshu.com/p/f34c179bc9d0
修改起來也很簡單,每個關鍵字中用冒號隔開就好,修改過後如下
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
按Ctrl+s保存我們的修改,點擊右下角Import Changes, Gradle會爲我們自動下載swagger依賴
配置Swagger
將SwaggerConfig複製到config文件夾中(文件已上傳班羣)
在application.properties中添加swagger2.enable=true
修改login接口
添加swagger註解
//name:參數名,value:參數描述,dataType:數據類型,required:是否爲必須值,默認爲false
@ApiImplicitParams({
@ApiImplicitParam(name = "userName", value = "用戶名", dataType = "String", required = true),
@ApiImplicitParam(name = "password", value = "密碼", dataType = "String", required = true)
})
修改login接口爲Post
啓動項目
打開瀏覽器,輸入http://localhost:8080/swagger-ui.html
點擊user-controller可以看到我們的登錄接口文檔
點擊Try it out試試看輸入用戶名和密碼吧!
提交
恭喜你,成功的完成了一個feature的開發
接下來我們提交這個分支, 這個分支commit後,可以不用push到碼雲上(根據自己需求決定)
提交完成後,回到我們的開發分支(dev)
把功能分支的代碼合併(merge)到開發分支上
選中我們的功能分支,點擊Merge
提交我們的開發分支(dev)到gitee上
打開碼雲,選中我們的開發分支(dev), 可以看到我們已成功推送啦~
Bug記錄
-
我自己的一個Bug(已解決)
沒有截圖,報錯的內容是Could not resolve placeholder 'swagger2.enable' in value "${swagger2.enable}
SwaggerConfig中設置了
@Value("${swagger2.enable}")
application.properties中也配置了
swagger2.enable=true
各種操作解決不了,無奈,從gitee上把先前的版本克隆下來,重新配置了下,一遍解決
有可能是Idea的Bug,沒有識別到我的application.properties文件
還有可能是魔法,有機會叫個道士之類的人來做個法,驅驅邪 -
同學的Bug,網絡環境問題,可能是防火牆沒設置好,導致spring依賴下載不下來
加上Gradle配置環境錯誤,使用最新版本解決(已解決)