springBoot常见面试题(2023最新)
目录
- 前言
- 1.谈谈你对springBoot的理解
- 2.为什么使用springBoot或springBoot的优点
- 3. springBoot与springCloud 区别
- 4.springBoot的核心配置文件有哪些,作用是什么
- 5.springBoot配置文件有几种类型,区别是什么
- 6.什么是热部署?springBoot怎么实现热部署
- 7.什么是 JavaConfig?
- 8.Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的或介绍一下 @SpringBootApplication 注解
- 9.springBoot的启动器starter
- 10.springBoot项目的启动方法
- 11.如何在 Spring Boot 启动的时候运行一些特定的代码?
- 12.springBoot的全局异常处理
- 13.spring Boot常用注解
前言
java最新面试题(java基础、集合、多线程、jvm、锁、算法、CAS、Redis、数据库、mybatis、spring、springMVC、springBoot、微服务)
1.谈谈你对springBoot的理解
是一站式解决方案,简化了spring繁重的配置,提供了各种启动器,让开发者更好上手。
2.为什么使用springBoot或springBoot的优点
(1)版本锁定: 解决maven依赖版本冲突问题
(2)起步依赖: 解决jar过多问题
(3)自动配置: 解决配置文件过多问题
(4)内置tomcat: 通过内置tomcat,不需要其他外置tomcat,也能运行javaEE。
3. springBoot与springCloud 区别
SpringBoot是快速开发的Spring框架,SpringCloud是完整的微服务框架,SpringCloud依赖于SpringBoot。
4.springBoot的核心配置文件有哪些,作用是什么
application 和 bootstrap 配置文件。
application: 用于项目的自动化配置。
bootstrap: 一些不能被覆盖的属性和加密或解密的场景。比application要先加载。
5.springBoot配置文件有几种类型,区别是什么
.yml和.properties
区别主要是书写方法不一样,.properties加载优先级大于.yml。
server.port = 8088 //.properties方式server: //.yml方式port:8088
6.什么是热部署?springBoot怎么实现热部署
热部署: 修改代码不需要重启,就可以实现编译并部署到服务器上。(1)在开发时修改代码不需要重启服务,节省了时间。(2)部署在服务器上的程序,可以在不停止的情况下进行升级。
①使用devtools。在配置文件中把devtools.restart.enabled 设置为 true。每次都需要build一下才行。
②idea设置实现热部署。
7.什么是 JavaConfig?
JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯 Java 方法,有助于避免使用 XML 配置。
8.Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的或介绍一下 @SpringBootApplication 注解
@SpringBootApplication:包含了三个注解。
①SpringBootConfiguration: 实现了@Configuration注解,实现配置文件的功能。
②@EnableAutoConfiguration: 打开自动配置的功能,也可以关闭某个自动配置的选项, 例
如: java 如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
③@ComponentScan: Spring组件扫描。
9.springBoot的启动器starter
可以通过启动器去集成其他技术:web、redis、maybatis等。
在pom配置 spring-boot-starter-web,就可以进行web开发。
原理:会加载这些配置类,放进spring容器中,就可以从容器中获取这些类。
10.springBoot项目的启动方法
打包
maven插件运行
main启动
11.如何在 Spring Boot 启动的时候运行一些特定的代码?
可以实现接口 ApplicationRunner或者 CommandLineRunner,这两个接口实现方式一样(项目启动完成后执行) ,它们
都只提供了一个 run 方法,在run方法写你的业务逻辑。
12.springBoot的全局异常处理
@ControllerAdvice:开启了全局异常的捕获。然后自定义一个方法使用@ExceptionHandler注解然后定义捕获异常的类型即可对这些捕获的异常进行统一的处理。
@ControllerAdvice
public class ExceptionUtil{@ExceptionHandler(value =Exception.class)@ResponseBodypublic String exceptionHandler(Exception e){System.out.println("全局异常捕获:"+e);return "全局异常捕获,错误原因:"+e.getMessage();}
}
13.spring Boot常用注解
@SpringBootApplication: SpringBootConfiguration配置类、componentScan扫描包、EnableAutoConfiguration导入其他配置类
@RestController: @ResponseBody和@Controller的作用。
@Component,@Service,@Controller,@Repository: 将类注入容器。
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping: 映射请求,只能接收的对应的请求。
@AutoWired: 按照类型匹配注入。
@Qualifier: 和AutoWired联合使用,在按照类型匹配的基础上,在按照名称匹配。
@Resource: 按照名称匹配依赖注入。
@Bean: 用于将方法返回值对象放入容器。
@RequestParam: 获取查询参数。即url?name=这种形式
@RequestBody: 该注解用于获取请求体数据(body),get没有请求体,故而一般用于post请求。@PathVariable: 获取路径参数。即url/{id}这种形式。
@Value: 将外部的值动态注入到 Bean 中。
@Value(“${}”):可以获取配置文件的值。
@Value(“#{}”):表示SpEl(Spring Expression Language是Spring表达式语言,可以在运行时查询和操作数据。)表达式通常用来获取 bean 的属性,或者调用 bean 的某个方法。
相关文章:
springBoot常见面试题(2023最新)
目录前言1.谈谈你对springBoot的理解2.为什么使用springBoot或springBoot的优点3. springBoot与springCloud 区别4.springBoot的核心配置文件有哪些,作用是什么5.springBoot配置文件有几种类型,区别是什么6.什么是热部署?springBoot怎么实现热…...

YOLOv5全面解析教程⑤:计算mAP用到的Numpy函数详解
作者 | Fengwen、BBuf 本文主要介绍在One-YOLOv5项目中计算mAP用到的一些numpy操作,这些numpy操作使用在utils/metrics.py中。本文是《YOLOv5全面解析教程④:目标检测模型精确度评估》的补充,希望能帮助到小伙伴们。 欢迎Star、试用One-YOLOv…...

Linux入门---基本指令(下)
这里写目录标题cattacmorelessheadtail一个思考题datecalfindwhichaliaswhereisgrepzip/unziptarbcuname快捷键tabCTRL c上下键CTRLrcat 这个指令的功能就是显示文件里面的内容: 我们首先使用下面的指令往一个文件里面循环输入内容: cnt0; while [ $c…...
mysql基础操作1
-- 创建数据库CREATE DATABASE st0203;-- 删除数据库DROP DATABASE st0203;-- 删除表DROP TABLE dept;-- 创建表CREATE TABLE dept(did int PRIMARY KEY auto_increment COMMENT主键(部门编号),deptName VARCHAR(20) NOT NULL COMMENT部门名称,address V…...

nginx-ingress部署+跨命名空间转发
nginx-ingress部署一、环境信息二、k8s环境搭建三、ingress环境搭建3.1 deploy.yaml文件3.2 service-nodeport.yaml文件四、按照业务建立service及ingress4.1 业务信息4.2 建立service4.3 创建ingress五、验证结果一、环境信息 k8s集群版本:1.23.6ingress版本&…...

耗时1个月整理的网络安全学习路线,不信还有比这更详细的
首先咱们聊聊,学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学习语言上; 2、知识点掌握程度不清楚 对于网络安全…...
ChatGPT进阶-提示词中文版
一、ChatGPT简介 ChatGPT 是 OpenAI 开发的人工智能聊天机器人。该聊天机器人基于 GPT-3.5 语言模型,经过训练可以对用户给出的指令做出详细响应。与其他聊天机器人不同,ChatGPT 可以回答后续问题、求解数学方程式、撰写文本、修复和调试代码以及总结文本…...

Linux 进程:进程状态
目录一、进程状态1.简单分类2.详细分类(1)运行态(2)休眠态[1]可中断休眠态[2]不可中断休眠态(3)停止状态(4)死亡状态(5)僵死状态二、特殊进程1.僵尸进程2.孤儿…...

应用程序性能优化方案,web服务五级缓存优化,服务器性能优化...
winfrom 全局异常捕获WPF 全局异常捕获Asp.Net全局异常捕获MVC 全局异常捕获AspNetNetCore 全局异常捕获一级缓存html/css/js 前端缓存二级缓存Asp.Net MVC AspNetCore 客户端缓存设置三级缓存服务端缓存四级redis 数据库缓存服务端缓存五级sqlserver 数据库缓存设置分布式缓存…...

云计算简介
本文为copy他人编写的文档,由于不确认作者名称,故无法标记来源(实际来源是群pdf文档),暂时发文为原创,因为无法贴出原文链接! 云原生的前世今生 随着公有云和私有云的广泛部署,云计…...

两个适配器网络冲突,限制访问特定网址
两个适配器网络冲突,限制访问特定网址说明命令说明说明 因为工作需要,有线网络访问局域网服务器,限制特别策略访问,如禁止远程。此时如果想要远程,在连接手机热点就可以,但由于两个网络的存在优先级。就出…...

电子科技大学 高级计算机系统结构 考试回忆
首先题量不算小,因此没有太多时间把题都记出来,但是叙述一下题的类型希望能帮到以后选了这门课大家,在网上确实没有搜到这门课有关考试的任何资料,所以我也没啥参考全凭记忆和老师的PPT结合。复习的时候老师给了大纲,就…...

【设计模式】18.观察者模式
概述 定义: 又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能…...

软测入门(一)测试理念及基础知识
软测入门理念 软件的分类 按层次划分:系统软件、应用软件按组织划分:商业软件、开源软件按结构划分:单机软件、 软件缺陷 由来 Grace Hopper发明Cobol计算机语言,也是找出电脑程序中第一个bug的女程序员 BugDefect 定义 软…...

2022年“网络安全”赛项山东省菏泽市选拔赛任务书
2022年“网络安全”赛项山东省菏泽市选拔赛任务书 任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一:Apache安全配置 任务二:数据分析-A 任务三:Windows操作系…...

LeetCode练习四:栈
文章目录一、 堆栈基础知识1.1 简介1.2 堆栈的顺序存储1.2.1 堆栈顺序存储基本描述1.2.2 堆栈顺序存储实现代码1.3 堆栈的链式存储1.3.1 堆栈的链式存储基本描述1.3.2 堆栈的链式存储实现代码二、 堆栈的基础应用2.1 堆栈基础题列表2.2 括号匹配问题2.2.1 有效的括号2.2.2 最长…...

【Python实战】爬虫教程千千万,一到实战全完蛋?今天手把手教你一键采集某网站图书信息数据啦~排名第一的竟是...(爬虫+数据可视化)
前言 一本本书,是一扇扇窗,为追求知识的人打开认知世界的窗口 一本本书,是一双双翅膀,让追求理想的人张开翅膀翱翔 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末…...

【数据结构】堆的详解
本章的知识需要有树等相关的概念,如果你还不了解请先看这篇文章:初识二叉树 堆的详解一、二叉树的顺序结构及实现1、二叉树的顺序结构2、堆的概念及结构二、堆的简单实现 (以大堆为例)1、堆的定义2、堆的初始化3、堆的销毁4、堆的打印5、堆的插入6、堆顶元素的获取7…...

New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了
最近,来自大洋彼岸那头的ChatGPT科技浪潮席卷而来,微软将chatGPT整合搜索引擎Bing开启内测后,数百万用户蜂拥而至,都想试试这个「百事通」。 赶鸭子上架,“翻车”了? 但短短上线十几天,嵌入了…...

简易计算器-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)
【案例11-2】 简易计算器 【案例介绍】 1.案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2.运行结果 运行结果 【案例分析】 要制作一个计算器,首先要知道它由哪些部分组成,如下图所示: 一…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...