分支
安装了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配置环境错误,使用最新版本解决(已解决)