Spring Boot 框架知识汇总
1、什么是SpringBoot?
通过Spring Boot,可以轻松地创建独立的,基于生产级别的Spring的应用程序,您可以“运行"它们。大多数Spring Boot应用程序需要最少的Spring配置,集成了大量常用的第三方库配置,使得这些库在Spring Boot应用中几乎可以零配置地开箱即用。
2、SpringBoot的特征?
◆ 创建独立的Spring应用程序,Spring Boot应用程序可以作为独立的可执行JAR或WAR文件运行,这使得部署和分发变得非常简单。
◆ 直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
◆ 提供固化的“starter"依赖项,以简化构建配置
◆ 尽可能自动配置Spring 和3rd Party库
◆ 提供可用于生产的功能,例如指标,运行状况检查和外部化配置
◆ 完全没有代码生成,也不需要XML配置
3、如何快速构建一个SpringBoot项目?
◆ 通过Web界面使用。http://start.spring.io
◆ 通过Spring Tool Suite使用。
◆ 通过IntelliJ IDEA使用。
◆ 使用Spring Boot CLI使用。
4、SpringBoot启动类注解是啥,它是由哪些注解组成?
@SpringBootApplication
这是Spring Boot项目的核心注解,通常放在主类上。它实际上是@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan的组合,也可以用这三个注解来代替 @SpringBootApplication 注解。
◆ @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
◆ @EnableAutoConfiguration: 打开自动配置的功能,也可以关闭某个自动配置的选项。
◆ @ComponentScan:Spring 组件扫描,自动扫描包路径下的 @Component 注解进行注册 bean 实例到 context 中。
5、什么是yaml?
YAML文件格式是Spring Boot支持的一种JSON超集文件格式,以数据为中心,比properties、xml等更适合做配置文件。
YAML(/'iamal/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl。更具有结构性。
◆ yml和xml相比,少了一些结构化的代码,使数据更直接,一目了然
◆ 相比properties文件更简洁
◆ yaml文件的扩展名可以使用.yml或者.yaml。
◆ application.yml文件使用 “key:(空格)value”格式配置属性,使用缩进控制层级关系。
spring:profiles:active: test
swagger:production: falsebasic:enable: falseusername: jeecgpassword: jeecg1314
6、SpringBoot 支持配置文件的格式
(1) properties
java.microservice.name=leishi
(2) yml
java :
microservice:
name:leishi
7、SpringBoot启动方式?
◆ main方法
◆ 命令行 java -jar 的方式
◆ mvn/gradle
8、application.properties 和 application.yml 文件可放位置及优先级
1).外置,在相对于应用程序运行目录的/config子目录里。
2). 外置,在应用程序运行的目录里。
3). 内置,在config包内。
4). 内置,在Classpath根目录。
这个列表按照优先级排序,优先级高的会覆盖优先级低的。
当然我们可以自己指定文件的位置来加载配置文件,如
java -jar xiaoka.jar-spring.config.location=/home/application.yml
如果是2.4.0之前版本,优先级properties>yaml;但是如果是2.4.0的版本,优先级yaml>properties。
9、bootstrap.yml 和 application.yml
bootstrap.yml 优先于application.yml
10、SpringBoot如何修改端口号?
除了在配置文件 yml 和properties 中修改 server.port 的值外,还可以启动时用命令修改:
命令1:
java -iar leishi.jar --server.port=8080
命令2:
java-Dserver.port=8080 -jar leishi.jar
11、SpringBoot 配置监控
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
12、针对请求访问的几个组合注解?
◆ @PatchMapping
◆ @PostMMapping
◆ @GetMMapping
◆ @PutMapping
◆ @DeleteMMapping
13、SpringBoot 中的 starter
可以理解成对依赖的一种合成,starter会把一个或一套功能相关依赖都包含进来,避免了自己去依赖费事,还有各种包的冲突问题。大大的提升了开发效率。
并且相关配置会有一个默认值,如果我们自己去配置,就会覆盖默认值。
14、SpringBoot 集成 Mybatis
mybatis-spring-boot-starter
15、不同的环境的配置文件
可以是 application-{profle}.properties/yml,但默认是启动主配置文件application.properties,一般来说我们的不同环境配置如下。
◆ application.properties:主配置文件
◆ application-dev.properties:开发环境配置文件
◆ application-test.properties:测试环境配置文件
◆ application.prop-properties:生产环境配置文件
16、如何激活某个环境的配置?
比如我们激活开发环境。
(1) yml 文件配置:
spring:profiles:active: dev
(2) properties 文件配置:
spring.profiles.active=dev
(3) 命令行:
java -jar leishi-v1.0.jar.--spring.profiles.active=dev
17、编写测试用例的注解
@SpringBootTest
18、SpringBoot 异常处理相关注解
◆ @ControllerAdvice
ControllerAdvice是Spring框架中的一个注解,用于增强Controller的功能。它可以应用于整个应用程序中的所有Controller,或者通过指定包或注解来应用于特定的Controller。这个注解主要用于全局处理一些共通的操作或处理,例如全局异常处理、全局数据绑定、全局数据预处理等。
它通常注解在类上
◆ @ExceptionHandler
它注解在具体的异常方法上,例如
// 你还可以为特定的异常类型定义处理方法
@ExceptionHandler(value = CustomException.class)
public ResponseEntity<Object> handleCustomException(CustomException ex) {return new ResponseEntity<>("自定义异常:" + ex.getMessage(), HttpStatus.BAD_REQUEST);
}
19、SpringBoot 读取配置相关注解有
◆ @PropertySource
◆ @Value
◆ @Environment
◆ @ConfigurationProperties
相关文章:
Spring Boot 框架知识汇总
1、什么是SpringBoot? 通过Spring Boot,可以轻松地创建独立的,基于生产级别的Spring的应用程序,您可以“运行"它们。大多数Spring Boot应用程序需要最少的Spring配置,集成了大量常用的第三方库配置,使…...
国产麒麟、uos在线编辑word文件并控制编辑区域(局部编辑)
windows系统也适用,该插件可同时支持windows和国产系统 在实际项目开发中,以下场景可能会用到Word局部编辑功能: 合同审批公文流转策划设计报告汇签单招投标(标书文件)其他,有模板且需要不同人员协作编辑…...
Go:基本变量与数据类型
目录 前言 前期准备 Hello World! 一、基本变量 1.1 声明变量 1.2 初始化变量 1.3 变量声明到初始化的过程 1.4 变量值交换 1.5 匿名变量 1.6 变量的作用域 二、数据类型 1.1 整型 1.2 浮点型 1.3 字符串 1.4 布尔类型 1.5 数据类型判断 1.6 数据类型转换 1.…...
计算器原生js
目录 1.HTML 2.CSS 2.JS 4.资源 5.运行截图 6.下载连接 7.注意事项 1.HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…...
怎样将aac转换mp3格式?推荐四个aac转MP3的方法
怎样将aac转换mp3格式?当需要将aac格式音频转换为MP3格式时,有几种方法可以轻松实现这一目标。MP3是一种广泛支持的音频格式,几乎所有设备和平台都能播放MP3文件,包括各种音乐播放器、手机、平板电脑和汽车音响系统。而且它也提供…...
MongoDB - 查询操作符:比较查询、逻辑查询、元素查询、数组查询
文章目录 1. 构造数据2. MongoDB 比较查询操作符1. $eq 等于1.1 等于指定值1.2 嵌入式文档中的字段等于某个值1.3 数组元素等于某个值1.4 数组元素等于数组值 2. $ne 不等于3. $gt 大于3.1 匹配文档字段3.2 根据嵌入式文档字段执行更新 4. $gte 大于等于5. $lt 小于6. $lte 小于…...
html5——CSS高级选择器
目录 属性选择器 E[att^"value"] E[att$"http"] E[att*"http"] 关系选择器 子代: 相邻兄弟: 普通兄弟: 结构伪类选择器 链接伪类选择器 伪元素选择器 CSS的继承与层叠 CSS的继承性 CSS的层叠性 …...
Python-数据爬取(爬虫)
~~~理性爬取~~~ 杜绝从入门到入狱 1.简要描述一下Python爬虫的工作原理,并介绍几个常用的Python爬虫库。 Python爬虫的工作原理 发送请求:爬虫向目标网站发送HTTP请求,通常使用GET请求来获取网页内容。解析响应:接收并解析HTTP响…...
虚幻引擎ue5如何调节物体锚点
当发现锚点不在物体上时,如何调节瞄点在物体上。 步骤1:按住鼠标中键拖动锚点,在透视图中多次调节锚点位置。 步骤2:在物体上点击鼠标右键点击-》锚定--》“设置为枢轴偏移”即可。...
Xcode持续集成之道:自动化构建与部署的精粹
标题:Xcode持续集成之道:自动化构建与部署的精粹 在快节奏的软件开发中,持续集成(Continuous Integration, CI)是提升开发效率和软件质量的关键实践。Xcode作为苹果生态中的核心开发工具,提供了与多种持续…...
Java高频面试基础知识点整理13
干货分享,感谢您的阅读!背景高频面试题基本总结回顾(含笔试高频算法整理) 最全文章见:Java高频面试基础知识点整理 (一)Java基础高频知识考点 针对人员: 1.全部人员都…...
css画半圆画圆弧
利用border-radius和border完成: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> <style> .semicircle {width: 100px;height: 50px;border-radius: 0 0 50px 50px;background:…...
LeetCode HOT100(四)字串
和为 K 的子数组(mid) 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 输入:nums [1,1,1], k 2 输出:2 解法1:前缀和Map 这…...
uniapp引入 uview( HBuilder 和 npm 两种安装方式) #按需引入
方式一、HBuilder 安装 uview 1.1. HBuider安装-链接-》》 1.2. 在uni.scss 中引入 import "uni_modules/uview-ui/theme.scss";1.3. main.js 引入(import Vue from ‘vue’ 下面) import uView from "uni_modules/uview-ui"; V…...
使用uni-app和Golang开发影音类小程序
在数字化时代,影音内容已成为人们日常生活中不可或缺的一部分。个人开发者如何快速构建一个功能丰富、性能优越的影音类小程序?本文将介绍如何使用uni-app前端框架和Golang后端语言来实现这一目标。 项目概述 本项目旨在开发一个个人影音类小程序&#…...
基于Go1.19的站点模板爬虫详细介绍
构建一个基于Go1.19的站点模板爬虫是一项有趣且具有挑战性的任务。这个爬虫将能够从网站上提取数据,并按照指定的模板进行格式化。以下是详细的介绍和实现步骤。 1. 准备工作 工具和库: Go 1.19colly:一个强大的Go爬虫库goquery࿱…...
永恒之蓝:一场网络风暴的启示
引言 在网络安全的漫长历史中,“永恒之蓝”(EternalBlue)是一个不可忽视的里程碑事件。它不仅揭示了网络世界的脆弱性,还促使全球范围内对网络安全的重视达到了前所未有的高度。本文将深入探讨“永恒之蓝”漏洞的起源、影响及其对…...
AI绘画:艺术与科技的交融,创新浪潮与无限可能
在科技日新月异的当下,AI 绘画作为人工智能领域的一颗璀璨新星,正以惊人的速度在国内崭露头角,引发了艺术与技术交融的全新变革。随着人工智能技术的飞速发展,AI绘画已成为艺术与科技交融的新宠。2024年,AI绘画行业在国…...
医疗健康信息的安全挑战与隐私保护最佳实践
医疗健康信息的安全挑战 医疗健康信息的安全挑战主要包括数据规模庞大、管理困难、数据类型多样导致的安全风险高、以及法律法规与伦理约束带来的挑战。随着医疗信息化的发展,医疗健康数据呈现出爆炸式的增长,医院信息系统、电子病历、健康管理等产生了海…...
《C++并发编程实战》笔记(一、二)
一、简介 抽象损失:对于实现某个功能时,可以使用高级工具,也可以直接使用底层工具。这两种方式运行的开销差异称为抽象损失。 二、线程管控 2.1 线程的基本控制 1. 创建线程 线程相关的管理函数和类在头文件: #include <…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
