10道经典springboot面试题,说一说自己的理解,欢迎指正!

Posted 前程有光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10道经典springboot面试题,说一说自己的理解,欢迎指正!相关的知识,希望对你有一定的参考价值。

什么是springboot

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。

springboot功能

  • 自动配置:springboot的自动配置是一个运行时(更准确的说是应用程序启动时)的过程,springboot自动完成Spring配置应该用哪个,不该用哪个。
  • 起步依赖:定义了对其他库的依赖传递,不会存在版本冲突问题
  • 辅助功能:提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。

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

  • 启动类上的注解@SpringBootApplication,是核心注解,主要包含了以下3个注解:
  • @SpringBootConfiguration:包含了@Configuration,实现配置文件的功能;
  • @EnableAutoConfiguration:打开自动配置的功能;
  • @ComponentScan:Spring组件扫描

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

可以不需要,内置了Tomcat/Jetty等容器,默认Tomcat

运行SpringBoot有哪几种方式?

  • 打包用命令或放到容器中运行
  • 直接执行main方法运行
  • 用Maven插件运行

Spring Boot 自动配置原理是什么?

  • 在springboot的启动类中使用了注解@SpringBootApplication注解,里面的@EnableAutoConfiguration注解是自动配置的核心,注解内部使用@Import(AutoConfigurationImportSelector.class)(class文件用来哪些加载配置类)注解来加载配置类,并不是所有的bean都会被加载,在配置类或bean中使用@Condition来加载满足条件的bean。
  • @EnableAutoConfiguration 给容器导入META-INF/spring.factories 里定义的自动配置类,筛选有效的自动配置类。每一个自动配置类结合对应的 xxxProperties.java 读取配置文件进行自动配置功能

SpringBoot自动配置-Condition

  • Condition是Spring4.0后引入的条件化配置接口,通过实现Condition接口可以完成有条件的加载相应的Bean
  • @Conditional要配和Condition的实现类(ClassCondition)进行使用
  • SpringBoot 提供的常用条件注解:
  • ConditionalOnProperty:判断配置文件中是否有对应属性和值才初始化Bean
  • ConditionalOnClass:判断环境中是否有对应字节码文件才初始化Bean
  • ConditionalOnMissingBean:判断环境中没有对应Bean才初始化Bean

Spring Boot 可以兼容老 Spring 项目吗,如何做?

  • 可以,使用@ImportResource注解导入老Spring项目配置文件。在启动类上使用。

SpringBoot配置-profile

  • profile是用来完成不同环境下,配置动态切换功能的
  • profile配置方式

多profile文件方式:提供多个配置文件,每个代表一种环境。
application-dev.properties/yml 开发环境
​application-test.properties/yml 测试环境
​application-pro.properties/yml 生产环境

  • profile激活方式

配置文件:spring.profiles.active=dev

springboot监控 actuator

  • spring boot actuator 是 spring启动框架中的重要功能之一。spring boot自带监控功能,可以帮助实现对程序内部运行情况监控,比如监控状态、Bean加载情况、配置属性、日志信息等。

最后

在文章的最后作者为大家整理了很多资料!包括java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书等等!欢迎关注公众号:前程有光,领取!

以上是关于10道经典springboot面试题,说一说自己的理解,欢迎指正!的主要内容,如果未能解决你的问题,请参考以下文章

腾讯一面:说一说 MySQL 中索引的底层原理

腾讯一面:说一说 MySQL 中索引的底层原理

腾讯一面:说一说 MySQL 中索引的底层原理

JVM10道不得不会的JVM面试题

大厂经典高频面试题体系化集合,先收藏了

MySQL 23道经典面试吊打面试官