SpringBoot总结

一、Spring\SpringBoot\SpringCloud

Spring :Spring是SpringBoot和SpringCloud的基础。Spring是一个广泛使用的企业级 Java 应用程序框架 ,提供了应用开发的核心功能,如依赖注入、AOP(面向切面编程) 等,旨在简化开发过程
SpringMVC :是 Spring 框架的一部分,是一个用于构建 Web 应用程序的强大框架。它遵循MVC(模型-视图-控制器)设计模式,使得开发者能够轻松开发处理用户请求的 Web 应用。
SpringBoot :Spring Boot 是一个基于 Spring 框架的开源 Java 框架,它简化了 Spring 应用程序的配置和部署,使开发人员可以更快地构建、部署和测试Spring应用。
SpringCloud :Spring Cloud 是一套基于 Spring Boot 的工具集,用于构建分布式系统和微服务架构。它提供了各种开箱即用的解决方案,帮助开发者快速实现复杂的分布式系统。

二、SpringBoot的核心特点

1、内嵌服务器 :Spring Boot 支持内嵌的 HTTP 服务器,如 Tomcat、Jetty 或 Undertow,可以直接将应用程序打包成一个独立的 JAR 文件运行,简化了部署过程。

2、简化配置 :Spring Boot 提供默认配置并且支持基于注解的配置,避免了传统 Spring 配置中繁琐的 XML 配置文件,减少了大量的手动配置。

3、自动配置(开箱即用) :Spring Boot 提供了大量的自动配置选项,可以根据项目中的依赖自动配置 Spring 应用。比如,当你使用数据库相关的依赖时,Spring Boot 会自动配置数据源。

4、快速开发 :Spring Boot 通过"约定大于配置"的理念,减少了配置文件的编写,使得开发者可以集中精力进行业务逻辑的开发。它还通过 Starter 依赖简化了常见模块的配置。

5、生产级特性:Spring Boot 提供了许多有助于生产环境的特性,例如健康检查、监控、日志管理等。

三、SpringBoot的基本结构

四、SpringBoot核心组件

五、SpringBoot的启动流程

(启动入口:当 SpringBoot 项目启动时,会在当前工作目录下寻找有@SpringBootApplication注解标识的类,即启动类。并在启动类的main 方法里调用 SpringApplication.run() 方法启动应用。)

六、面试题汇总

6.1 SpringBoot是如何通过main方法启动web项目的

首先,通过main方法调用SpringApplication.run()方法启动应用之后,SpringApplication 类的构造器会初始化应用程序的一些属性,如确定项目类型(Web 或 非Web),如果是Web类型,就创建和配置适应的ApplicationContext以及所需要的依赖。由于SpringBoot内置了服务器,因此会启动 Web 容器并监听指定端口,刷新 ApplicationContext 完成 Bean 创建与依赖注入,执行相关逻辑,最终使应用进入运行状态,开始监听和处理请求。

6.2 SpringBoot是如何实现自动配置的

Spring Boot 实现自动配置的核心机制是通过 @EnableAutoConfiguration 注解与 spring-boot-autoconfigure 包的配合来完成的。

6.3 SpringBoot支持哪些嵌入Web容器

6.4 application.properties和application.yml的区别

两者都是配置文件

6.5 SpringBoot中如何定义和读取自定义配置

定义 :application.properties 或 application.yml 中定义配置。
读取 :使用注解:

(1)@Value 注解:用于读取简单的配置项。

(2)@ConfigurationProperties 注解:适用于将一组相关的配置映射到 Java 对象,适合复杂配置。

6.6 SpringBoot配置文件加载优先级

优先级高的先加载

优先级顺序(由高到低):

附:外部配置文件 是指不存放在 Spring Boot 项目内部(如 src/main/resources 目录下)的配置文件,而是存放在项目外部的配置文件(例如操作系统的文件系统、网络路径、Docker 容器内部等)。这些文件可以通过环境变量、命令行参数或其他方式指定路径,Spring Boot 会加载这些外部配置文件来覆盖项目中的默认配置。

6.7 SpringBoot打成的jar和普通的jar有什么区别

6.8 SpringBoot是否可以使用xml配置

Spring Boot 可以使用 XML 配置,但是它并不是默认的配置方式也并不推荐,会产生优先级问题并失去一部分自动配置的优势。Spring Boot 强调的是 约定优于配置注解配置,通过自动配置和 application.properties/application.yml 文件来简化配置。但是,Spring Boot 也支持使用 XML 配置,特别是对于需要迁移或集成的现有 Spring 项目。

6.9 SpringBoot默认同时可以处理的最大连接数是多少

6.10 如何理解SpringBoot中的starter

Spring Boot Starter 是一组针对特定功能的预配置模块。每个 Starter 包含了一个功能模块所需要的所有依赖,允许开发者通过简单地引入一个 Starter 来启用该功能,无需手动配置每个库和依赖。

有点像我们要去买一些商品,这时有一个人把它们都打包成了一个套餐,那我们不用再一个一个找了,可以直接买这个套餐节省时间和精力。

6.11 SpringBoot中如何实现定时任务

使用@Scheduled注解并开启定时任务功能

6.12 什么是SpringBoot Actuator?它有什么优势?

SpringBoot Actuator是SpringBoot提供的一个应用程序的管理和监控工具,允许开发者查看和管理应用的运行时状态、性能指标、健康检查等信息。

优势:

(1)易于集成:Spring Actuator 集成非常简单,只需在 Spring Boot 项目中引入 spring-boot-starter-actuator 依赖,然后启用相应的端点即可,无需复杂的配置。

(2)支持自定义: 开发者可以自定义暴露的端点或度量标准,扩展 Spring Actuator 的功能来满足特定的业务需求。

(3)自动检查:提供自动化的健康检查和性能度量功能,确保各个组件的正常运行。

6.13 SpringBoot1.X、SpringBoot2.X、SpringBoot3.X之间的区别以及主要的改进

(1)Spring Boot 1.x 主要集中在简化 Spring 应用的配置和启动过程,适合传统应用和单体应用。

(2)Spring Boot 2.x 重点在于对新技术(如 WebFlux 和响应式编程)的支持,以及对 Java 11+ 和微服务架构的优化,但仍基于JAVA EE,适合构建现代化的分布式系统。

(3)Spring Boot 3.x 基于Jakarta EE,完全兼容 Spring 6,强化对 Java 17 和 GraalVM 的支持,适合需要高性能、低启动时间的应用程序,并要求使用较新的 Java 版本。

6.14 SpringBoot如何实现异步处理

6.15 SpringBoot(Spring)中为什么不推荐使用@Autowired

6.16 Springboot中如何实现多数据源配置

相关推荐
GoodStudyAndDayDayUp3 分钟前
IDEA能够从mapper跳转到xml的插件
xml·java·intellij-idea
装不满的克莱因瓶33 分钟前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
n北斗40 分钟前
常用类晨考day15
java
骇客野人43 分钟前
【JAVA】JAVA接口公共返回体ResponseData封装
java·开发语言
yuanbenshidiaos2 小时前
c++---------数据类型
java·jvm·c++
向宇it2 小时前
【从零开始入门unity游戏开发之——C#篇25】C#面向对象动态多态——virtual、override 和 base 关键字、抽象类和抽象方法
java·开发语言·unity·c#·游戏引擎
Lojarro2 小时前
【Spring】Spring框架之-AOP
java·mysql·spring
莫名其妙小饼干2 小时前
网上球鞋竞拍系统|Java|SSM|VUE| 前后端分离
java·开发语言·maven·mssql
isolusion2 小时前
Springboot的创建方式
java·spring boot·后端
Yvemil73 小时前
《开启微服务之旅:Spring Boot Web开发举例》(一)
前端·spring boot·微服务