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中如何实现多数据源配置

相关推荐
Howard_Stark1 分钟前
Spring的BeanFactory和FactoryBean的区别
java·后端·spring
饮长安千年月2 分钟前
学生管理系统审计
java·网络安全·代码审计
-曾牛10 分钟前
Spring Boot中@RequestParam、@RequestBody、@PathVariable的区别与使用
java·spring boot·后端·intellij-idea·注解·spring boot 注解·混淆用法
软件20514 分钟前
【UserDetailsService】
spring boot
新时代苦力工22 分钟前
处理对象集合,输出Map<String, Map<String, List<MyObject>>>格式数据,无序组合键处理方法
java·数据结构·list
极客智谷24 分钟前
Spring AI应用系列——基于Alibaba DashScope的聊天记忆功能实现
人工智能·后端
极客智谷26 分钟前
Spring AI应用系列——基于Alibaba DashScope实现功能调用的聊天应用
人工智能·后端
RJiazhen26 分钟前
5分钟让你的服务接入AI——用 API Auto MCP Server 实现大模型与后端系统的无缝对话
后端·开源·mcp
前端付豪28 分钟前
2、ArkTS 是什么?鸿蒙最强开发语言语法全讲解(附实操案例)
前端·后端·harmonyos
前端付豪32 分钟前
8、鸿蒙动画开发实战:做一个会跳舞的按钮!(附动效示意图)
前端·后端·harmonyos