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面试题,说一说自己的理解,欢迎指正!的主要内容,如果未能解决你的问题,请参考以下文章