【SpringBoot】面试题汇总

发布于:2024-04-14 ⋅ 阅读:(128) ⋅ 点赞:(0)

SpringBoot

1. SpringBoot的优点

答:

  • 简化Spring的配置
  • 遵循 “约定大约配置”
  • SpringBoot 内嵌 Tomcat。

2. SpringBoot约定大于配置是怎么实现的

答:

约定大于配置:遵循一套约定好的规定,系统自动为我们进行配置。

Spring Boot的 “约定大于配置” 是通过自动配置来实现的。

具体的实现步骤如下:

  1. Spring Boot在启动时,会加载在spring-boot-autoconfigure-X.X.X.jar包的META-INF下的spring.factories文件中配置。这个文件中的所有类,会被Spring Boot自动加载。不需要我们手动的进行配置。
  2. 当然,我们也可以在配置类中去覆盖Spring Boot要自动装配的类,进行自定义配置。

3. 什么是 Spring Boot Starter?

答:

  • Spring Boot Starters 是一系列依赖关系的集合
  • 我们只需要引入一个 Starter,就相当于引入了一系列的依赖。

4. Spring Boot 支持哪些内嵌 Servlet 容器?

答:

  • Tomcat:默认的Servlet容器,也是使用最广泛的选项。
  • Jetty:轻量级Servlet容器
  • Undertow:来自Red Hat的轻量级Servlet容器

5. 如何在Spring Boot中切换Servlet容器

答:

  • Spring Boot 默认使用的是 Tomcat 容器,如果要切换的话,可以在 spring-boot-starter-web 依赖中排除 Tomcat 的依赖。
  • 然后手动添加其他容器的依赖

6. 介绍一下@SpringBootApplication 注解

答:

@SpringBootApplication 包括 3 个注解

  • @Configuration : 表明该类是一个配置类
  • @ComponentScan:扫描包路径,查找所有要注册的Bean
  • @EnableAutoConfiguration: 开启Spring Boot的自动配置

7. Spring Boot 的自动装配是如何实现的?

答:

  • Spring Boot 的自动装配主要是通过 @EnableAutoConfiguration 注解和 spring.factories 文件来实现的。
  • 主启动类中添加 @EnableAutoConfiguration 注解,告诉 Spring Boot 开启自动配置功能。
  • @EnableAutoConfiguration 注解会导入一个 AutoConfigurationImportSelector 导入选择器配置类
  • 在这个配置类中,会读取所有路径下的 META-INF/spring.factories 文件。
  • Spring Boot 根据条件加载 spring.factories 文件中类。

8. Spring Boot 加载配置文件的优先级了解么?

答:

  • 命令行参数:Spring Boot 会优先加载通过命令行参数传入的配置,因为通常认为这是运行时的特殊需求。
  • 程序运行目录的配置文件:程序运行目录下的config子目录的配置文件 或是 运行目录下的配置文件
  • 资源目录下的配置文件:优先加载 classpath:/config 下的配置文件,然后是 classpath 下的配置文件

9. Spring Boot 启动流程

答:

  1. SpringApplication.run(MainApplication.class, args) 方法执行后,首先会创建一个SpringApplication对象,然后执行对象的run方法。
  2. 加载SpringApplicationRunListeners:可以用来发布Spring Boot启动过程中的事件,供其他组件订阅。
  3. 创建并配置Environment:包含所有外部属性,如配置文件系统环境变量命令行参数等。
  4. 创建ApplicationContext:创建IOC容器,并准备配置类和Bean的注册。
  5. 刷新容器,初始化所有的Bean。
  6. 如果实现了CommandLineRunnerApplicationRunner的方法,就运行它们。
  7. 返回容器。

网站公告

今日签到

点亮在社区的每一天
去签到