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和设置,以使这个库能够在应用程序中使用。
相关推荐
能工智人小辰13 分钟前
二刷 苍穹外卖day10(含bug修改)
java·开发语言
DKPT13 分钟前
Java设计模式之结构型模式(外观模式)介绍与说明
java·开发语言·笔记·学习·设计模式
缘来是庄16 分钟前
设计模式之外观模式
java·设计模式·外观模式
先做个垃圾出来………34 分钟前
SQL的底层逻辑解析
数据库·sql
编程小白gogogo35 分钟前
Spring学习笔记
笔记·学习·spring
码不停蹄的玄黓1 小时前
深入拆解MySQL InnoDB可重复读(RR)隔离级别:MVCC+临键锁如何「锁」住一致性?
数据库·mysql·可重复读
知其然亦知其所以然1 小时前
JVM社招面试题:队列和栈是什么?有什么区别?我在面试现场讲了个故事…
java·后端·面试
harmful_sheep1 小时前
Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
java·spring·缓存
星辰大海的精灵1 小时前
如何确保全球数据管道中的跨时区数据完整性和一致性
java·后端·架构
大大。1 小时前
van-tabbar-item选中active数据变了,图标没变
java·服务器·前端