2022年精心总结,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加载情况、配置属性、日志信息等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

Lemon-

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值