记Spring Boot面试篇

521 阅读4分钟

一、什么是 SpringBoot?为什么要用它?

  • SpringBoot是用来简化Spring应用的初始化搭建以及开发过程,使用特定的方式进行配置

  • 创建独立的Spring引用程序main方法运行

  • 嵌入式tomcat,Jar包启动

  • 简化Maven配置

  • 自动配置Spring添加对应功能starter自动化配置

二、SpringBoot的优点

  • 独立运行

  • 简化配置

  • 自动配置

  • 无代码生成和XML配置

  • 应用监控

三、SpringBoot 的核心注解是哪个?它由哪些注解组成?

SpringBoot 的核心注解是 @SpringBootApplication,他是由三个注解组成:

  1. @SpringBootConfiguration:组合了@Configuration 注解,实现了配置功能

  2. @EnableAutoConfiguration:实现了自动配置,也可以关闭指定配置源

    @SpringBootConfiguration(exclude = {需要关闭的配置类})

  3. @ComponentScan:实现Spring组件扫描

四、SpringBoot 的启动方式有哪几种?

  1. 打包用命令运行:java -jar 包

  2. 用 Maven/Gradle 插件运行

  3. 直接运行 main 方法

五、如何理解 SpringBoot 中的 starters?

starters 可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,可以一站式集成 Spring或者其它技术。

starters 的命名方式 SpringBoot 官方的启动器的命名方式是 spring-boot-starter-命名的,第三方的启动器不能以该方式命名,因为该方式以被官方所保留,第三方的启动器的命名方式需要使用如:mybatis-spring-boot-starter 命名。

starters 分类:

  • 应用启动器

  • 生成启动器

  • 技术类启动器

  • 第三方启动器

启动器名称

功能描述

spring-boot-starter

包含自动配置、日志、YAML的支持

spring-boot-starter-web

使用 spring MVC 构建的 web 工程

spring-boot-starter-actuator

提供生成环境监控功能

spring-boot-starter-json

提供对 JSON 的读写支持

spring-boot-starter-logging

默认的日志启动器,默认使用 Logback

六、如何在 SpringBoot 启动的时候运行一些特定的代码?

可以实现 ApplicationRunner或者CommonLineRunner接口

七、SpringBoot需要独立的容器运行吗?

可以不需要,Springboot内置了tomcat/jetty等容器

八、SpringBoot的监视器是什么?

Spring boot actuator 是 spring 启动框架中的重要功能之一,Spring boot 监视器提供了生产环境运行中服务的监控,监视器模块公开了直接作为 HTTP URL 访问的 REST 端点来检查状态。

九、如何使用 Spring Boot实现异常处理?

被@ControllerAdvice 、@RestControllerAdvice注解的类可以在程序出现异常时可以有效的拦截异常并做相关处理操作,配合@ExceptionHandler方法注解一起使用。

十、如何理解 Spring Boot 中的starters?

starters 可以理解为启动器,包含了一系列的集成到应用里面的依赖包,可以用于一站式集成 spring 及其他技术。

十一、Spring Boot 常用的 starters 有哪些?

  • spring-boot-starter-web:嵌入 tomcat 和 web 开发需要的servlet容器

  • spring-boot-starter-data-jpa:数据库支持

  • spring-boot-starter-solr:solr支持

  • mybatis-spring-boot-starter:mybatis的启动器

十二、Spring Boot 实现热部署有哪几种方式?

  • spring loaded

  • spring-boot-devtool

十三、Spring Boot 配置的加载顺序是?

  1. properties配置文件

  2. yaml文件

  3. 系统环境变量

  4. 命令行参数

十四、Spring Boot 的核心配置文件有哪几个?他们区别是什么?

核心的配置文件主要有:application、bootstrap配置文件

  • application:主要用于 Spring Boot 项目自动化配置

  • bootstrap:

    • Spring Cloud 的基础配置文件,用于定义连接配置中的属性来加载配置中心的配置信息

    • 配置一些固定不能被覆盖的属性

    • 一些加密/解密的场景

十五、如何集成 Spring Boot 和 ActiveMQ?

集成 ActiveMQ 我们只需要使用 spring-boot-stater-activemq 依赖,并在配置文件中添加 ActiveMQ 相关配置即可

十六、Spring Boot、Spring MVC 和 Spring 有什么关系?

  1. Spring

    最重要的特征就是依赖注入,所有的 SpringModules 不是依赖注入的就是 IOC 控制反转

  2. Spring MVC

    Spring MVC 提供了一种分离式的方法来开发 Web应用,通过运用像 DispatcherServlet、ModuleAndView 和 ViewResolver 等一些简单的概念,开发 Web应用变得很简单

  3. Spring Boot

    用于简化或者去除 Spring 的配置,SpringBoot 通过自动化配置方便的集成 Spring 的基础配置