2023年springboot经典面试题目,面试题集合

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 2023年springboot经典面试题目,面试题集合

642ccf00b85e1641a4973476d760d764_f1d5c3e1c34841db89a1d6f0b0328a0b.png

1. 什么是 Spring Boot?


Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用Spring

的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手


2. 为什么要用SpringBoot


快速开发,快速整合,配置简化、内嵌服务容器


3. SpringBoot与SpringCloud 区别


SpringBoot是快速开发的Spring框架,SpringCloud是完整的微服务框架,SpringCloud依赖于SpringBoot。


4. Spring Boot 有哪些优点?


Spring Boot 主要有如下优点:


1. 容易上手,提升开发效率,为 Spring 开发提供一个更快、更简单的开发框架。


2. 开箱即用,远离繁琐的配置。


3. 提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等。


4. SpringBoot总结就是使编码变简单、配置变简单、部署变简单、监控变简单等等


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


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


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


@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项, 例如: java 如关闭数据源自动配置功能:

@SpringBootApplication(exclude DataSourceAutoConfiguration.class})。


@ComponentScan:Spring组件扫描。


6. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?


Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,如果你使用 Starters

启动器,Spring Boot 将使用 Logback 作为默认日志框架,但是不管是那种日志框架他都支持将配置文件输出到控制台或者文件中。


7. SpringBoot Starter的工作原理


我个人理解SpringBoot就是由各种Starter组合起来的,我们自己也可以开发Starter在sprinBoot启动时由@SpringBootApplication注解会自动去maven中读取每个starter中的spring.factories文件,该文件里配置了所有需要被创建spring容器中的bean,并且进行自动配置把bean注入SpringContext中

//(SpringContext是Spring的配置文件)


8. Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?


配置变更


JDK 版本升级


第三方类库升级


响应式 Spring 编程支持


HTTP/2 支持


配置属性绑定


更多改进与加强


9. SpringBoot支持什么前端模板,


thymeleaf,freemarker,jsp,官方不推荐JSP会有限制


10. SpringBoot的缺点


我觉得是为难人,SpringBoot在目前我觉得没有什么缺点,非要找一个出来我觉得就是由于不用自己做的配置,报错时很难定位。


11. 运行 Spring Boot 有哪几种方式?


1. 打包用命令或者放到容器中运行


2. 用 Maven/ Gradle 插件运行


3. 直接执行 main 方法运行


12. Spring Boot 需要独立的容器运行吗?


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


13. 开启 Spring Boot 特性有哪几种方式?


1. 继承spring-boot-starter-parent项目


2. 导入spring-boot-dependencies项目依赖


14. SpringBoot 实现热部署有哪几种方式?


热部署就是可以不用重新运行SpringBoot项目可以实现操作后台代码自动更新到以运行的项目中主要有两种方式:


Spring Loaded


Spring-boot-devtools


15. SpringBoot事物的使用


SpringBoot的事物很简单,首先使用注解EnableTransactionManagement开启事物之后,然后在


Service方法上添加注解Transactional便可。


16. Async异步调用方法


在SpringBoot中使用异步调用是很简单的,只需要在方法上使用@Async注解即可实现方法的异步调用。

注意:需要在启动类加入@EnableAsync使异步调用@Async注解生效。


17. 如何在 Spring Boot 启动的时候运行一些特定的代码?


可以实现接口 ApplicationRunner 或者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个 run 方法


18. Spring Boot 有哪几种读取配置的方式?


Spring Boot 可以通过 @PropertySource,@Value,@Environment,

@ConfigurationPropertie注解来绑定变量


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
安全 Java 容器
【Java集合类面试二十七】、谈谈CopyOnWriteArrayList的原理
CopyOnWriteArrayList是一种线程安全的ArrayList,通过在写操作时复制新数组来保证线程安全,适用于读多写少的场景,但可能因内存占用和无法保证实时性而有性能问题。
|
3月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
3月前
|
Java
【Java集合类面试二十八】、说一说TreeSet和HashSet的区别
HashSet基于哈希表实现,无序且可以有一个null元素;TreeSet基于红黑树实现,支持排序,不允许null元素。
|
3月前
|
Java
【Java集合类面试二十六】、介绍一下ArrayList的数据结构?
ArrayList是基于可动态扩展的数组实现的,支持快速随机访问,但在插入和删除操作时可能需要数组复制而性能较差。
|
3月前
|
存储 Java 索引
【Java集合类面试二十四】、ArrayList和LinkedList有什么区别?
ArrayList基于动态数组实现,支持快速随机访问;LinkedList基于双向链表实现,插入和删除操作更高效,但占用更多内存。
|
1月前
|
存储 安全 算法
Java面试题之Java集合面试题 50道(带答案)
这篇文章提供了50道Java集合框架的面试题及其答案,涵盖了集合的基础知识、底层数据结构、不同集合类的特点和用法,以及一些高级主题如并发集合的使用。
92 1
Java面试题之Java集合面试题 50道(带答案)
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
427 37
|
1月前
|
架构师 Java 开发者
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
在40岁老架构师尼恩的读者交流群中,近期多位读者成功获得了知名互联网企业的面试机会,如得物、阿里、滴滴等。然而,面对“Spring Boot自动装配机制”等核心面试题,部分读者因准备不足而未能顺利通过。为此,尼恩团队将系统化梳理和总结这一主题,帮助大家全面提升技术水平,让面试官“爱到不能自已”。
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
|
2月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
2月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)