什么是 Spring Boot?

Spring Boot 是 Spring的子项目,用来简化 Spring 应用开发,抛弃了传统的 Spring 繁琐的配置。启用各种自动配置,加以整合。使开发者可以快速地构建自己的应用程序。

为什么要用 spring boot?

  • 配置简单
  • 独立运行
  • 自动装配
  • 无代码生成和xml配置
  • 提供应用监控
  • 易上手
  • 提升开发效率

Spring Boot 有哪些优点?

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

Spring Boot 自动配置的原理?

在 Spring 程序 main 方法中,添加@SpringBootApplication 或者 @EnableAutoConfiguration 会自动去 Maven 中读取每个 starter 中的 spring.factories 文件 该文件里配置了所有需要被创建 Spring 容器中的 Bean。

初中级的你如何搞定Spring Boot面试_生产环境

初中级的你如何搞定Spring Boot面试_配置文件_02


初中级的你如何搞定Spring Boot面试_配置文件_03

详细内容感兴趣的小伙伴自己去看看

Spring Boot 中的监视器是什么?

Spring Boot Actuator 是 Spring 启动框架中的重要功能之一。Spring Boot 监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。

有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为 HTTP URL 访问的 REST 端点来检查状态。

Spring Boot 激活指定 profile 的方式?

  • 在配置文件中指定 spring.profiles.active=dev
  • 命令行:java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;
  • 虚拟机参数:-Dspring.profiles.active=dev

spring boot 核心配置文件是什么?

spring boot 核心的两个配置文件:

  • bootstrap (. yml 或者 . properties):
    boostrap 由父ApplicationContext 加载的,比 applicaton 优先加载,且 boostrap 里面的属性不能被覆盖;
  • application (. yml或者 . properties):
    用于 spring boot 项目的自动化配置

什么是 yaml

yaml是一种人类可读的数据序列化语言。它通常用于配置文件。

与属性文件相比,如果我们想要在配置文件中添加复杂的属性,yaml文件就更加结构化,而且更少混淆。可以看出 yaml具有分层配置数据。

spring boot 配置文件有哪几种类型?它们有什么区别?

配置文件有 . properties 格式和 . yml 格式,它们主要的区别是书法风格不同。

. properties 配置如下:

初中级的你如何搞定Spring Boot面试_配置文件_04




. yml 配置如下:

. yml 格式不支持 @PropertySource 注解导入。

spring boot 有哪些方式可以实现热部署?

  • 使用 devtools 启动热部署,添加 devtools 库,在配置文件中把 spring. devtools. restart. enabled 设置为 true;
  • 使用 Intellij Idea 编辑器,勾上自动编译或手动重新编译。

Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })

@ComponentScan:Spring组件扫描(默认扫描的是与当前Application.java类包目录及以下目录的)。以下是本人平时自己瞎写的工程结构:

初中级的你如何搞定Spring Boot面试_生产环境_05