当下SpringBoot框架真的很火,大多数企业把它作为基础技能,考察求职者的能力。如下截图,是我从Boss直聘中找到的,要求SpringBoot是必备技能。



所以非常有必要为了面试,好好归纳下SpringBoot常被提起来的问题。
题目大纲如下:
- 什么是SpringBoot?
 - SpringBoot与Spring、Spring MVC之间有什么关系?
 - 使用SpringBoot有什么优势?
 - SpringBoot默认的配置文件是什么?
 - 如何根据SpringBoot项目所处的环境,定义不同的配置?
 - 解释下SpringBoot的核心注解@SpringBootApplication的组成
 - 开启SpringBoot特性的两种方式?
 - SpringBoot项目如何兼容Spring的配置
 - SpringBoot的读取放置在不同目录下的配置文件,优先级是怎样的?
 
什么是SpringBoot?
SpringBoot是建立在现有Spring框架之上,使开发人员简化Spring项目开发,降低使用成本。
SpringBoot与Spring、Spring MVC之间有什么关系?
Spring的全称是Spring Framework。
Spring MVC是Spring Framework的子模块。
而SpringBoot是构造在Spring Framework之上的Boot启动器。
使用SpringBoot有什么优势?
- 内嵌常用应用服务器,比如Tomcat、Jetty等,不用单独再配置应用服务器,并且不用打成war包
 - 可以以jar包的形式,快速独立运行项目
 - 在maven的pom.xml配置文件中提供了Starters,而不需要到处找依赖包,避免了大量依赖的导入以及版本之间的冲突与不兼容
 
SpringBoot默认的配置文件是什么?
默认配置文件是项目根目录下的application.properties或者application.yml文件。
如何根据SpringBoot项目所处的环境,定义不同的配置?
我们可以在主配置文件application.properties之外,再新增如下文件,满足不同环境的要求:
- 开发环境:application-dev.properties
 - 测试环境:application-test.properties
 - 生产环境:application-prop.properties
 
如果需要激活某个环境的配置,只需在主配置文件application.properties指定项目所在环境的标识,配置内容如下:
spring:
  profiles:
    active: dev #开发环境 
解释下SpringBoot的核心注解@SpringBootApplication的组成

它包含以下3个重要的注解:
- @ComponentScan
 
该注解实现Spring组件的扫描。
- @EnableAutoConfiguration
 
该注解能够让SpringBoot打开自动配置的功能。
- @SpringBootConfiguration
 
该注解实现配置文件的功能。
开启SpringBoot特性的两种方式?
- 继承spring-boot-starter-parent项目
 
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.2.RELEASE</version>
</parent> 
导入spring-boot-dependencies依赖
<dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.2.2.RELEASE</version>
                <scope>import</scope>
</dependency> 
实际开发中,推荐使用第二种方式。因为如果我们创建的项目已经存在自己的父级项目,会与第一种方式存在冲突。
SpringBoot项目如何兼容Spring的配置
在启动类中添加:

SpringBoot的读取放置在不同目录下的配置文件,优先级是怎样的?
配置文件具体可以放置在如下目录,按被读取的优先级由高到低排列:
#当前项目根目录下的config目录下,被读取的优先级最高
file:/config/
#当前项目根目录下
file:/
#类路径下的config目录下
classpath:/config/
#类路径目录下,被读取的优先级最低
classpath:/ 
假如项目中存在两个及以上的这样的目录,等级高的会覆盖掉比它低的配置文件。

为了方便给大家准备了非常全的一套SpringBoot一线大厂面试题。全面覆盖BATJ等一线互联网公司的面试题及解答,由BAT一线互联网公司大牛带你深度剖析面试题背后的原理,不仅授你以鱼,更授你以渔,为你面试扫除一切障碍。资料已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦







![[附源码]java毕业设计疫情环境下的酒店管理系统](https://img-blog.csdnimg.cn/78f1b30687fa4708b231fdbc9b390412.png)








![[附源码]java毕业设计医院预约挂号管理系统](https://img-blog.csdnimg.cn/ae1f0f6f7ce044298bcc42d31dbd7afd.png)







