springboot高频面试题回答之一

 

1、SpringBoot有哪些优点

- 快速创建独立运行的Spring项目以及与主流框架集成
 - 使用嵌入式的Servlet容器,应用无需打成WAR包
 - starters自动依赖与版本控制
 - 大量的自动配置,简化开发,也可修改默认值
 - 无需配置XML,无代码生成,开箱即用
 - 准生产环境的运行时应用监控
 - 与云计算的天然集成

 2、SpringBoot为什么能直接运行?

SpringBoot内置嵌入式的Servlet容器,且有大量的自动配置简化开发,能做到开箱即用,所以可以直接运行

3、列一下常见的git命令(你都用过哪些命令)?或具体到某个命令的用法,如:怎么从远程仓库把代码取下来? 

git branch 查看本地所有分支

git status 查看当前状态 

git commit 提交 

git branch -a 查看所有的分支

git branch -r 查看远程所有分支

git commit -am "init" 提交并且加注释 

git remote add origin [email protected]:ndshow

git push origin master 将文件给推到服务器上 

git remote show origin 显示远程库origin里的资源 

git push origin master:hb-dev 将本地库与服务器上的库进行关联 

git checkout --track origin/dev 切换到远程dev分支

git branch -D master develop 删除本地库develop

git checkout -b dev 建立一个新的本地分支dev

git merge origin/dev 将分支dev与当前分支进行合并

git checkout dev 切换到本地dev分支

git remote show 查看远程库

 4、SVN和Git用起来有什么区别,你推荐哪一个?

 1. GIT是分布式的,SVN不是
 2. GIT把内容按元数据方式存储,而SVN是按文件
 3. GIT分支和SVN的分支不同
 4. GIT没有一个全局的版本号,而SVN有
 5. GIT的内容完整性要优于SVN
 6. 综上所述,我更推荐使用Git来管理

 

5、logback日志级别都有哪些?

默认由低到高 trace < debug < info < warn < error,可以调整输出的日志级别,日志就只会在这个级别和更高级别生效。SpringBoot默认给我们使用的是info级别的,没有指定级别就使用默认级别的。

6、slf4j, logback, log4j是什么关系?

SpringBoot底层使用slf4j+logback的方式进行日志记录,如果使用其他的日志,SpringBoot会把其他的日志实现底层都替换为slf4j。log4j和logback是同一个作者写的日志,不过logback实现了slf4j,slf4j本身是一个日志门面,并不包含具体的实现

7、列举出常见的http请求方式

GET、POST、DELETE、PUT等等

8、怎么读取自定义的配置项?用什么注解?怎么设置默认值?

 1. 如果我们需要读取单个自定义配置项,可以使用@Value注解 。例@Value("${test.hello}"),@Value注解支持SpEL。@Value("${test.hello:TEST}"),加上冒号可以设置默认值
 2. 如果我们是写了一个JavaBean来和配置文件进行映射,这时候就需要使用到@ConfigurationProperties注解来绑定配置项,它支持绑定多个属性配置项,支持松散绑定,还支持复杂类型的封装

9、bootstrap和application配置有什么区别?

Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖。

10、为什么引入SpringBoot内置依赖不需要加版本号?

点开pom.xml中的spring-boot-starter-parent父项目就会发现,里面就指定了内置依赖的版本号,所以我们在导入SpringBoot内置依赖时不需要指定版本号,因为父项目已经帮我们指定了版本号。

你可能感兴趣的:(spring,boot,常见面试题)