【Spring Boot】面试题汇总,带答案的那种

2023-12-22 19:30

本文主要是介绍【Spring Boot】面试题汇总,带答案的那种,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

继上次的文章【MySQL连环炮,你抗的住嘛?】爆火之后,越来越多的小伙伴后台留言,要求阿Q总结下其他的“连环炮”知识点,想在金九银十的面试黄金期轻松对线面试官。

同样为了节省大家的时间,阿Q最近对【Spring Boot】的知识点进行了系统的总结。那么,你准备好迎接【Spring Boot】连环炮了吗?

在这里插入图片描述

文章目录

  • 1、什么是 Spring Boot
  • 2、为什么要使用 Spring Boot
  • 3、Spring 和 Spring Boot 的区别
  • 4、Spring Boot 和 Spring Cloud 的区别
  • 5、SpringBoot 的优点
  • 6、 Spring Boot 的核心注解
  • 7、日志框架

1、什么是 Spring Boot

Spring Boot 是一个简化了 Spring 应用程序开发的框架,它通过提供默认配置和约定来减少开发者的工作量,并提供了丰富的功能和集成,使得开发者可以更加高效地构建和部署应用程序。

2、为什么要使用 Spring Boot

Spring Boot 提供了很多特性:自动配置、嵌入式 Web 服务器、健康检查、度量指标、安全性等。开发人员可以通过使用 Spring Boot Starter 来快速集成常用的第三方库和框架,比如 Spring Data、Spring Security、MyBatis、Redis 等。

3、Spring 和 Spring Boot 的区别

Spring 和 Spring Boot 的区别在于它们的目标和用途不同:Spring 是一个轻量级的开源框架,它提供了一种简单的方式来构建企业级应用程序。

Spring Boot 则是 Spring 框架的延伸和扩展,它提供了一种快速构建应用程序的方式。开发人员可以通过使用 Spring Boot Starter 来快速集成常用的第三方库和框架,使得开发人员可以快速构建出一个可运行的应用程序。

4、Spring Boot 和 Spring Cloud 的区别

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

5、SpringBoot 的优点

Spring Boot 是一个基于 Spring 框架的快速开发框架,它有以下优点:

  • 简化配置: Spring Boot 采用约定大于配置的原则,提供了自动配置的特性,大部分情况下无需手动配置,可以快速启动和运行应用程序。同时,Spring Boot 提供了统一的配置模型,集成了大量常用的第三方库和框架,简化了配置过程。
  • 内嵌服务器: Spring Boot 集成了常用的内嵌式服务器,如 Tomcat、Jetty 和 Undertow 等。这意味着不再需要单独安装和配置外部服务器,可以直接运行 Spring Boot 应用程序,简化了部署和发布过程。
  • 自动装配: Spring Boot 提供了自动装配机制,根据应用程序的依赖关系和配置信息,智能地自动配置 Spring 的各种组件和功能,大大减少了开发人员的手动配置工作,提高了开发效率。
  • 起步依赖: Spring Boot 引入了起步依赖(Starter Dependencies)的概念,它是一种可用于快速集成相关技术栈的依赖项集合。起步依赖能够自动处理依赖冲突和版本兼容性,并提供了默认的配置和依赖管理,简化了构建和管理项目的过程。
  • 自动化监控和管理: Spring Boot 集成了 Actuator 模块,提供了对应用程序的自动化监控、管理和运维支持。通过 Actuator,可以获取应用程序的健康状况、性能指标、配置信息等,方便运维人员进行故障排查和性能优化。
  • 丰富的生态系统: Spring Boot 建立在 Spring Framework 的基础上,可以无缝集成 Spring 的各种功能和扩展,如 Spring Data、Spring Security、Spring Integration 等。同时,Spring Boot 还提供了大量的第三方库和插件,可以方便地集成其他技术栈,构建全栈式应用程序。
  • 可扩展性和灵活性: 尽管 Spring Boot 提供了很多自动化的功能和约定,但它也保持了良好的可扩展性和灵活性。开发人员可以根据自己的需求进行自定义配置和扩展,以满足特定的业务需求。

综上所述,Spring Boot 是一个强大而又灵活的开发框架,具有简化配置、快速开发、自动化监控、微服务支持等诸多优点。它极大地提高了开发效率、降低了开发成本,并且在行业中得到了广泛的认可和应用。

6、 Spring Boot 的核心注解

它的核心注解就是启动类上的 @SpringBootApplication ,点击它,你会看到它里边又包含了 @SpringBootConfiguration、@EnableAutoConfiguration 和 @ComponentScan 三个重要的注解。

  • @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。@Configuration 与 @Bean 结合使用。@Configuration 可理解为用 spring 的时候 xml 里面的标签,@Bean可理解为用 spring 的时候 xml 里面的标签。
  • @EnableAutoConfiguration:打开自动配置的功能,它的子注解中最关键的就是 @Import(AutoConfigurationImportSelector.class) ,借助 AutoConfigurationImportSelector@EnableAutoConfiguration 可以帮助 Spring Boot 应用将所有符合条件的 @Configuration 配置都加载到当前 Spring Boot 创建并使用的IoC容器。
  • @ComponentScan:Spring 组件扫描,默认为当前包及其子包。Spring Boot 中的 Spring 容器在启动的时候,会扫描当前包与子包中所有实现 @Component 注解或者其子类如 @Configuration(找个本质上还是 @Component)标记的类,认为这些类是 bean, 并且把这些 bean 对应的 beanDefinition 放到容器中进行管理。

7、日志框架

Spring Boot 支持 Java Util Logging、Log4j2、Lockback 作为日志框架,如果你使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架。

今天的内容到这里就结束了,跪求一键三连,期望靓仔在评论区打出老铁666,鼓励一下阿Q。

好看的皮囊千篇一律,有趣的灵魂万里挑一,让我们在冷漠的城市里相互温暖,我是阿Q,我们下期再见!

这篇关于【Spring Boot】面试题汇总,带答案的那种的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/525176

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定