目录
- swagger
- @Api作用
- 接收前端参数的实体类使用()
- controller里方法的参数使用(),方法上使用()
- springMVC的RequestParam和swagger的ApiParam的required = true 有什么不同
- Fiddler
- Fiddler是一款()工具
- Fiddler是以()的形式工作的
- Windows
- 屏幕左边和下面图标都超出了屏幕能显示的范围怎么解决
- idea快捷键
- 断点调试Breakpoint
- bookMark
- 折叠代码块
- 将当前行向上或向下调一行
- 换行
- 生成for循环
- 写了对象调用方法后自动生成类型和变量
- try-catch、while等提示
- 生成get/set方法,构造方法
- 重写父类方法
- 只是实现接口的抽象方法,不重写方法
- 查看类的子类
- 全文搜索
- 查看类的继承关系图
- 查看类中所有方法,即查看structure
- 将代码抽取出方法
- 调用方法时,不知道方法参数该写什么,使用()
- 查看方法的信息,例如查看方法的返回值
- 写好了方法名,参数,返回值,希望自动生成一个空方法
- 用maven创建了一个web项目,没有java和resources目录,手动创建之后发现在java目录下创建的java文件无法被识别,只是当做普通文件
- 一键格式化
- git
- 集中式版本控制系统最大的毛病是()
- 分布式版本控制系统没有中央服务器,因为()
- 分布式版本控制,甲修改了文件a,乙也修改了文件a,如何协作呢
- 分布式版本控制经常会甲乙互相推送自己的修改吗
- 如何把目录变成可以管理的仓库
- git只能跟踪()文件的改动,Word文件呢
- 把一个文件放到git仓库需要两步:将文件()到仓库,将文件()到仓库
- 查看历史记录,使用命令
- 回退到上一个版本
- 回退到上一个版本反悔了,又想回来怎么办
- git比svn多了一个()区的概念
- 工作区与版本库的区别
- 版本库存了很多东西:系统为我们创建的第一个分支master,还有()
- 查看暂存区有哪些东西没有commit,查看工作区的哪些东西没有add
- git status 告诉我们被修改了,但是记不清上次怎么修改的可以使用()命令
- Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件,举例说明git管理的是修改
- 查看工作区和版本库里面最新版本的区别
- git checkout -- file可以丢弃工作区的修改,那不同的情况下呢,情况1:自修改后还没有被放到暂存区,情况2:已经添加到暂存区后又做了修改
- 把暂存区的修改撤销掉,丢弃暂存区的修改
- 把工作区的文件删了,如果我想把删除操作同步到版本库,即把版本库的文件也删了怎么办,如果我是误删,想恢复又怎么办
- 公钥有什么用,私钥有什么用,GitHub的公钥是在本地还是在仓库
- 怎么将本地仓库与远程仓库关联
- 将本地库的内容推送到远程使用(),第一次推送与非第一次推送使用的命令有什么不同
- 先创本地库,再创远程库,最后将本地库和远程库关联;但是我先创远程库呢,git clone的时候需要先在本地创一个远程库的文件夹吗
- git 的分支管理与其他版本工具的分支管理有什么优势
- head一定指向master吗
- 假如我们在dev上的工作完成了,就可以把dev合并到master上,Git怎么合并呢,合并之后可以删除Dev分支吗,使用命令()
- 创建Dev分支,然后切换到Dev分支,查看当前分支
- 假设现在在master分支上,将Dev分支合并到当前分支
- 合并之后冲突了,怎么找到冲突的文件
- 实际开发,分支管理策略是什么样的,master,Dev,tomBranch,myBranch
- Git就会在merge时生成一个新的commit,这样就不会()
- 接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,当前正在dev上进行的工作还没有提交,并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办
- 在master分支修复bug后,发现Dev分支也有这个bug,难道需要又在Dev分支上修复一次,又不想把整个master分支merge过来
- 推送分支的时候需要指定(),这样,Git就会把该分支推送到远程库对应的远程分支上
- 怎么推送master分支,怎么推送Dev分支
- 未合并的分支不能被删除,怎么强行删除
- 远程仓库clone的代码需要本地与远程关联吗,为什么,怎么查看远程库的信息
- 哪些本地分支需要推送到远程,哪些不需要,master、Dev、bug、feature
- 假设远程仓库里面有两个分支master和dev,我clone下来会有两个分支吗
- 本地没有Dev分支,而又不能远程clone仓库里的Dev分支,怎么将本地Dev分支与远程Dev分支对应起来,可以git push origin dev吗
- git pull后有冲突怎么办
- maven
- maven项目的目录结构
- maven的镜像与远程仓库区别
- 当所有maven项目没有聚合在一个父pom.xml下,idea怎么一次编译
- maven的scope有compile、provided、runtime、test、system,解释compile、provided、test
swagger
@Api作用
用在controller上,标记一个Controller类做为swagger 文档资源
接收前端参数的实体类使用()
ApiModel用在类上,ApiModelProperty用在属性上,可以使用required = true,要求属性不能为空
controller里方法的参数使用(),方法上使用()
ApiParam,可以使用required = true
ApiOperation
springMVC的RequestParam和swagger的ApiParam的required = true 有什么不同
swagger的会在swaggerUI界面拦截,不输入就不能发出请求
springMVC的没有输入,返回400
Fiddler
Fiddler是一款()工具
抓包
Fiddler是以()的形式工作的
以代理WEB服务器
Windows
屏幕左边和下面图标都超出了屏幕能显示的范围怎么解决
屏幕有一排按键,藏在屏幕后面,按两下最左边的键,找到图像控制,选择自动调整就好了
idea快捷键
断点调试Breakpoint
add to watches
evaluate expression
bookMark
F11 打上book Mark,favorites可以找到bookmarks和breakpoint
折叠代码块
Ctrl + -
将当前行向上或向下调一行
alt + shift + ↑/↓
换行
Ctrl + shift + enter
生成for循环
- itar : 数组,i=0~ i
- itli:生成 list 的遍历
- iter:增强for循环
写了对象调用方法后自动生成类型和变量
Ctrl + alt + v
try-catch、while等提示
Ctrl + alt + T
生成get/set方法,构造方法
alt + insert
重写父类方法
Ctrl + o
只是实现接口的抽象方法,不重写方法
Ctrl + I
查看类的子类
Ctrl + h
全文搜索
Ctrl + shift + R
查看类的继承关系图
Ctrl + alt + shift + u
查看类中所有方法,即查看structure
alt + 7
将代码抽取出方法
Ctrl + alt + M
调用方法时,不知道方法参数该写什么,使用()
Ctrl + p
查看方法的信息,例如查看方法的返回值
Ctrl + q
写好了方法名,参数,返回值,希望自动生成一个空方法
Alt + enter
用maven创建了一个web项目,没有java和resources目录,手动创建之后发现在java目录下创建的java文件无法被识别,只是当做普通文件
选择project structure,modules,使用Mark as,可以将文件夹标为sources,resources,tests
一键格式化
Ctrl + alt + L
git
集中式版本控制系统最大的毛病是()
必须联网才能工作
分布式版本控制系统没有中央服务器,因为()
每个人的电脑都是一个完整的版本库
分布式版本控制,甲修改了文件a,乙也修改了文件a,如何协作呢
互相推送就行,甲将修改推给乙,乙将修改推给甲
分布式版本控制经常会甲乙互相推送自己的修改吗
不会,
第一,两台电脑互相可能访问不了
第二,也可能电脑压根没开机
所以,分布式版本控制系统通常也有一台充当“中央服务器”的电脑
如何把目录变成可以管理的仓库
git init
会发现目录下多了一个.git文件
git只能跟踪()文件的改动,Word文件呢
文本文件
Word文件不能跟踪,因为是二进制的
把一个文件放到git仓库需要两步:将文件()到仓库,将文件()到仓库
git add 添加、git commit -m “meesage” 提交
查看历史记录,使用命令
git log --pretty=oneline
回退到上一个版本
git reset --hard HEAD^
再使用git log 查看,发现刚刚的版本不见了
回退到上一个版本反悔了,又想回来怎么办
只能找到版本id
git reset --hard 1094a23432
而找版本id可以使用 git reflog,因为git reflog记录了你的每一次命令
git比svn多了一个()区的概念
暂存区,暂存区又叫stage
工作区与版本库的区别
工作区就是一个目录
工作区有一个.git隐藏文件,这个不算工作区,是版本库
版本库存了很多东西:系统为我们创建的第一个分支master,还有()
暂存区
查看暂存区有哪些东西没有commit,查看工作区的哪些东西没有add
git status
git status 告诉我们被修改了,但是记不清上次怎么修改的可以使用()命令
git diff
Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件,举例说明git管理的是修改
第一次修改 -> git add -> 第二次修改 -> git commit
git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交
查看工作区和版本库里面最新版本的区别
git diff HEAD – readme.txt
git checkout – file可以丢弃工作区的修改,那不同的情况下呢,情况1:自修改后还没有被放到暂存区,情况2:已经添加到暂存区后又做了修改
若修改后还没有add到暂存区,那么撤销修改后就回到和版本库一模一样的状态
若已添加到暂存区,那么回到添加到暂存区后的状态,也就是暂存区的状态
把暂存区的修改撤销掉,丢弃暂存区的修改
git reset HEAD readme.txt
把工作区的文件删了,如果我想把删除操作同步到版本库,即把版本库的文件也删了怎么办,如果我是误删,想恢复又怎么办
想同步删掉版本库的文件,git rm test.txt git commit -m “remove test.txt”
误删恢复:git checkout – test.txt
公钥有什么用,私钥有什么用,GitHub的公钥是在本地还是在仓库
别人用公钥加密文件传出来,只有我用私钥才能解开
我用私钥加密,别人用公钥可以解开,那公钥所有人都有那所有人都可以解开还有什么意义呢,意义就是签名,签名就是确认这个文件是我发的,而不是别人发的
GitHub的仓库放的是公钥,本地存的是私钥,因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,如果你想在家里和公司同时开发,还可以在GitHub仓库上面添加多个公钥
怎么将本地仓库与远程仓库关联
git remote add origin [email protected]:xxx/learngit.git
远程库的名字就是origin
将本地库的内容推送到远程使用(),第一次推送与非第一次推送使用的命令有什么不同
git push
第一次:git push -u origin master
非第一次:git push origin master
先创本地库,再创远程库,最后将本地库和远程库关联;但是我先创远程库呢,git clone的时候需要先在本地创一个远程库的文件夹吗
不需要,直接Git clone就行,本地会自动创建一个远程库名字的文件夹
git 的分支管理与其他版本工具的分支管理有什么优势
git很快,其他的都是蜗牛,成了摆设
head一定指向master吗
不一定,没有分支的时候指向master,若有其他分支也可以指向其他分支
假如我们在dev上的工作完成了,就可以把dev合并到master上,Git怎么合并呢,合并之后可以删除Dev分支吗,使用命令()
直接把master指向dev的当前提交,就完成了合并
可以
git branch -d
创建Dev分支,然后切换到Dev分支,查看当前分支
git checkout -b dev一条命令可以做到,相当于两条命令:
git branch dev
git checkout dev
查看当前分支:git branch,git branch命令会列出所有分支,当前分支前面会标一个*号
假设现在在master分支上,将Dev分支合并到当前分支
git merge dev
合并之后冲突了,怎么找到冲突的文件
git status
解决冲突的方式跟svn一样
实际开发,分支管理策略是什么样的,master,Dev,tomBranch,myBranch
master:master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活
Dev:干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本
mybranch:你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了
Git就会在merge时生成一个新的commit,这样就不会()
git merge --no-ff -m “merge with no-ff” dev
删除分支后,不会丢掉分支信息
接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,当前正在dev上进行的工作还没有提交,并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办
首先用git stash将当前工作现场储存起来,git status看到工作区是干净的;
假设出bug的分支是在master上,就从master创建临时分支,git checkout master,git checkout -b issue-101,修复完成后,切换到master分支,并完成合并,最后删除issue-101分支;
接着回到dev分支干活了,用git stash list命令看看刚才的工作现场存到哪去了,用git stash pop,恢复的同时把stash内容也删了,再用git stash list查看,就看不到任何stash内容了
在master分支修复bug后,发现Dev分支也有这个bug,难道需要又在Dev分支上修复一次,又不想把整个master分支merge过来
git cherry-pick 4c805e2,可以将这个提交给复制过来,相当于是给当前Dev分支做了一次重复的新提交
推送分支的时候需要指定(),这样,Git就会把该分支推送到远程库对应的远程分支上
本地分支
怎么推送master分支,怎么推送Dev分支
git push origin master
git push origin dev
未合并的分支不能被删除,怎么强行删除
git branch -D 分支名
远程仓库clone的代码需要本地与远程关联吗,为什么,怎么查看远程库的信息
不需要
因为当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin
git remote,看到远程库信息为origin
哪些本地分支需要推送到远程,哪些不需要,master、Dev、bug、feature
master分支是主分支,因此要时刻与远程同步
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug
feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发
假设远程仓库里面有两个分支master和dev,我clone下来会有两个分支吗
不会有两个分支,只有master一个分支
本地没有Dev分支,而又不能远程clone仓库里的Dev分支,怎么将本地Dev分支与远程Dev分支对应起来,可以git push origin dev吗
先创建且切换到本地Dev分支:git checkout -b dev
再指定本地dev分支与远程origin/dev分支的链接:git branch --set-upstream-to=origin/dev dev
再pull: git pull
如果远程仓库没有dev分支那么可以git push origin dev,若有dev分支则只能按照上面的步骤操作
git pull后有冲突怎么办
解决冲突→commit→push
maven
maven项目的目录结构
src下:main、test
main下:java、resources
java下:代码
如果是web项目,src下还有一个webapp目录
与src平行的有一个target
target下有个classes文件夹
classes下是java和resource的内容,不包括java和resources文件夹,类路径指的就是这块内容
maven的镜像与远程仓库区别
远程仓库:对应本地仓库,是一个团队的公共仓库,在项目里pom.xml面配
镜像仓库:如果依赖在国外,那么下载速度会比较慢,可以在maven的server.xml配置一个镜像仓库
当所有maven项目没有聚合在一个父pom.xml下,idea怎么一次编译
先右键每个项目的pom.xml,add as maven projet
然后再reimport all maven projects
maven的scope有compile、provided、runtime、test、system,解释compile、provided、test