SpringBoot常规的面试题整理如下:
一、SpringBoot的简单介绍
SpringBoot是用来简化Spring框架应用初始化搭建以及开发的全新框架,比如通过自动化配置省去了大量繁琐的配置文件。
二、SpringBoot的优点
- 快速创建独立运行的Spring项目与主流框架集成;
- 使用嵌入式的servlet容器,应用无需打包成war包;
- starters自动依赖与版本控制
- 大量的自动配置,简化开发,也可修改默认值
- 准生产环境的运行应用监控
- 与云计算的天然集成
三、Spring Boot的核心配置文件有哪几个?他们的区别是什么?
Spring Boot的核心配置文件是application和bootstrap配置文件。
application配置文件主要用于Spring Boot项目的自动化配置;
bootstrap配置文件有以下几个应用场景:
使用Spring Cloud Config配置中心时,可在bootstrap配置文件中增加连接到配置中心的配置属性来加载外部配置中心的配置信息;
少量固定的不能被覆盖的属性;
少量加密/解密的场景;
四、Spring Boot 的配置文件有哪几种格式?它们有什么区别?
.properties和.yml,它们的主要区别是书写格式不同。
//.properties
app.user.name = javastack
//.yml
app:
user:
name: javastack
五、Spring Boot的核心注解是哪个?它主要由哪几个注解组成?
Spring Boot的核心注解是@SpringBootApplication,它主要包含了以下3个注解:
@SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,比如关闭数据源自动配置功能@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})。
@ComponentScan:Spring组件扫描。
六、开启Spring Boot特性有哪几种方式
1.继承spring-boot-starter-parent项目
2.导入spring-boot-dependencies项目依赖
七、SpringBoot中的Starters的理解
Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,可以通过它一站式的集成Spring及其余技术,而不需要四处查找示例代码和依赖包。比如如果想使用Spring JPA访问数据库,只需加入spring-boot-starter-data-jpa启动器依赖就能使用了。
八、如何在自定义端口上运行Spring Boot应用程序
为了在自定义端口上运行SpringBoot应用程序,可以在application.properties中指定端口server.port=9090
九、如何使用SpringBoot实现分页和排序
Spring Boot实现分页有两种方式,一种是通过Spring Data JPA将实现分页的org.springframework.data.domain.Pageable的实现类传给存储库的方法。另一种方法是pringboot+Mybatis+PageHelper 实现分页、排序。
十、如何统一处理Spring Boot的异常处理
Spring提供了一种使用ControllerAdvice处理异常的非常的方法,在代码中通过实现一个ControllerAdvice类,来处理控制器抛出的所有异常。
十一、Swagger和SpringBoot中的应用
Swagger广泛用于可视化API,使用Swagger UI为前端开发人员提供在线沙箱。Swagger是用于
生成RESTful Web服务的可视化表示的工具,规范和完整框架实现。它使文档能够以与服务器相同的速度更新,当通过Swagger正确定义时,消费者可以使用最少量的实现逻辑来理解远程服务并与其进行交互。因此,Swagger消除了调用服务时的猜测。
十二、SpringBoot如何实现多套不同环境配置
提供多套配置文件,如:
applcation.properties
application-dev.properties
application-test.properties
application-prod.properties
在application.properties中定义生效的环境如:
#测试环境
spring.profiles.active=test