spring、springmvc、springboot框架的介绍

前言

我们已经学过Spring,SpringMVC,SpringBoot了,那这三者之间有没有联系或者区别呢?

spring是一个一站式的轻量级java开发的框架,那我们刚开始使用spring的时候,是需要配置很多的配置文件以及繁琐的过程才可以使用,那对于程序员来说开发就比较头疼了,spring的核心主要是控制反转(IOC)和面向切面(AOP)

springMVC是在spring框架基础之上的一个MVC框架,主要处理的就是web开发路径的映射以及视图渲染,属于spring框架中WEB层开发的一部分

springBoot框架是对spring框架进行了配置的简化,相对于spring MVC来说,更专注于开发微服务后台接口,不开发前端视图,springBoot是基于spring框架的快速开发工具,能够自动配置spring和第三方库,简化了spring开发和部署,springboot是spring框架的扩展,springboot使用spring的核心功能,但是更加简单、快速、灵活,提供了自动化配置,嵌入式web服务器,监控,健康检查,目标就是快速创建spring应用,并尽可能的减少配置

下面我们来了解一下springboot常见的面试题

1、Spring Boot 如何实现多环境配置?

Spring Boot 可以通过多个配置文件来支持多环境配置,例如
application-dev.properties、
application-test.properties、
application-prod.properties 等。
开发人员可以在不同的配置文件中定义不同的配置项,然后在 application.properties 或 application.yml 中指定当前环境的配置文件名,例如 spring.profiles.active=dev。这样在启动应用时,Spring Boot 会自动加载对应的配置文件,并使用其中的配置项。

2、Spring Boot 中的 Starter 是什么?

Spring Boot Starter 是一系列预定义的依赖关系,每个 Starter 都包含了一组相关的依赖关系,可以快速集成一个特定的功能模块,如 Spring Boot Starter Web、Spring Boot Starter Data JPA、Spring Boot Starter Test 等。

3、Spring Boot 如何实现热部署?

在项目中引入 Spring Boot DevTools依赖,并在 IDE 中开启自动重启,这样在修改代码后,应用会自动重启,从而实现热部署

4、Spring Boot 如何自动配置?

读取 classpath 下的 META-INF/spring.factories 文件,该文件中定义了一系列自动配置类,Spring Boot 会自动扫描这些类并自动配置相应的组件。如果需要定制配置,可以使用 application.properties 或 application.yml 文件进行覆盖。

5、什么是 Spring Boot?

Spring Boot 是一个基于 Spring 框架,并提供自动化配置、嵌入式 Web 服务器、监控、健康检查等功能的框架。其目标是快速创建 Spring 应用,并尽可能地减少配置。

6、SpringBoot如何处理事务?

Spring Boot 提供了非常方便的方式来整合事务,开发者只需要添加相应的依赖,然后在需要事务管理的方法上添加 @Transactional 注解即可。
以下是整合事务的步骤:
添加 Spring Boot Starter JDBC 依赖,这两个依赖中都包含了 Spring 的事务管理功能。
在 application.properties 或 application.yml 中配置数据源的信息,如数据库 URL、用户名、密码等。
在需要事务管理的方法上添加 @Transactional 注解,表示该方法需要被 Spring 事务管理器所管理。

7、Spring Boot如何处理配置文件?

Spring Boot使用application.properties或application.yml文件来进行配置,这些文件可以放在classpath下的/config目录中,或者在命令行参数中指定。Spring Boot支持很多种配置方式,如使用环境变量、属性文件、命令行参数等。

8、Spring Boot中的自动配置是什么?

Spring Boot中的自动配置是指根据应用程序的依赖自动配置Spring和第三方库的行为。当应用程序引入某个库时,Spring Boot会自动配置相关的Bean和设置,以使这个库能够在应用程序中使用。
相关推荐
2301_780789664 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
ClickHouseDB4 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906944 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
学长毕设5 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
时间售卖铺5 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw5 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
步行cgn5 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川5 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵5 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
秋天的怀念_David6 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法