当下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一线互联网公司大牛带你深度剖析面试题背后的原理,不仅授你以鱼,更授你以渔,为你面试扫除一切障碍。资料已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦