SpringBoot学习(properties、yml(主流)、yaml格式配置文件)(读取yml配置文件的3种方式)(详解)
目录
一、SpringBoot配置文件详解。
1.1配置文件简介。
1.2配置文件分类。(3种配置文件格式)
<1>application.properties(properties格式)。
<2>application.yml(yml格式)。
<3>application.yaml(yaml格式)。
1.3三种格式配置文件的优先级。
1.4yml文件。
<1>具体语法格式要求。
<2>常见数据的书写格式。
<3>普通数组书写格式。
<4>对象数组书写格式。
1.5读取yml文件中的数据。
<1>读取单一数据。(@Value)
<2>读取全部数据。(Environment对象)
<3>读取自定义对象数据。
1.6yaml文件中的数据引用。
1.7yaml配置随机值。
1.8多环境开发。(重点)
<1>yaml 单文件版。
<2>yaml 多文件版。
<3>properties 多文件版。
一、SpringBoot配置文件详解。
1.1配置文件简介。
- 覆盖SpringBoot工程的默认配置,并修改成自己所设定的配置文件。
- 配置文件中具体能够配置什么内容?ApplicationProperties官网链接附上:Common Application Properties :: Spring Boot
1.2配置文件分类。(3种配置文件格式)
- 就以简单配置修改Tomcat默认启动端口号(8080)为例。
- 注意:yml 和 yaml 这两种文件扩展名本质上并无区别。它们都用于表示 YAML(YAML Ain't Markup Language)格式的文件。
<1>application.properties(properties格式)。
server.port=8090
<2>application.yml(yml格式)。
server:port: 9090
<3>application.yaml(yaml格式)。
server:port: 9091
1.3三种格式配置文件的优先级。
- 优先级:application.properties > application.yml > application.yaml。
- 注意:每个配置文件中的项都会生效。只不过如果多个配置文件中有相同类型的配置时:优先级高的文件覆盖优先级的文件中的配置。如果配置项不同的话,所有的配置项都会生效。
- 测试如下。
- application.properties配置文件。
- application.yml配置文件。
- application.yaml配置文件。
1.4yml文件。
- SpringBoot配置文件主流格式:yml结尾的配置文件格式。并且在书写该类配置文件时可以通过提示的形式加载正确的格式。
- YAML(YAML Ain't Markup Language),一种数据序列化格式。具有容易阅读、容易与脚本语言交互、以数据为核心,重数据轻格式的特点。常见的文件扩展名有两种:yml格式(主流)、yaml格式。
<1>具体语法格式要求。
大小写敏感。
属性层级关系使用多行描述,每行结尾使用冒号结束。
使用缩进表示层级关系,同层级左侧对齐。
属性值前面必须添加空格。(属性名与属性值之间使用“冒号+空格”作为分隔)
“#”表示注释。
<2>常见数据的书写格式。
- 布尔值在 YAML 里不区分大小写,TRUE、true、True、FALSE、false、False 都能被正确解析为布尔类型。
is_active1: TRUE is_active2: false
- 浮点数支持常规的小数表示形式,也支持科学计数法。
float1: 3.14 float2: 6.8523015e+5
- 整数支持十进制、二进制、八进制和十六进制的表示方式。要注意的是,二进制数以 0b 开头,八进制数以 0o 开头,十六进制数以 0x 开头。
int_decimal: 123 # 代表十进制整数123 int_binary: 0b1010_0111_0100_1010_1110 # 代表二进制整数,0b表示这是二进制数,十进制数是43498 int_octal: 0o755 # 代表八进制整数,0o表示这是八进制数,十进制数是493 int_hexadecimal: 0xFF # 代表十六进制整数,0x表示这是十六进制数,十进制数是255
- 在 YAML 中,通常用 ~ 来表示空值,也可以使用 null 关键字。
empty_value1: ~ empty_value2: null
- 字符串可以直接书写。若包含特殊字符,就需要用单引号或者双引号包裹。双引号支持转义字符,单引号则不支持。
string1: HelloWorld # 这是一个直接书写的字符串,没有使用引号包裹,适用于字符串中不包含特殊字符(如空格、特殊标点等)的情况,该字符串的值为"HelloWorld"。string2: "Hello World" # 使用双引号包裹的字符串,可用于包含空格等特殊字符的情况。双引号内的特殊字符会被正常解析,这里字符串的值为"Hello World"。string3: 'It''s a nice day.' # 这是一个使用单引号包裹的字符串。单引号内的字符会按字面意思解析,不会进行转义。为了表示单引号字符,需要使用两个连续的单引号('')来表示一个单引号,该字符串的值为"It's a nice day."。string4: "It's a \"nice\" day." # 这是一个使用双引号包裹的字符串。双引号内支持转义字符,这里使用反斜杠(\)对单引号(')和双引号(")进行转义,使得它们能作为普通字符存在于字符串中,该字符串的值为"It's a \"nice\" day."。
- 日期必须要使用 yyyy-MM-dd 格式。
date: 2018-02-17
- 日期和时间之间用 T 连接,时区用 + 或者 - 表示。
datetime: 2018-02-17T15:02:31+08:00#2018-02-17:表示日期,即 2018 年 2 月 17 日。 #T:是日期和时间之间的分隔符,是 ISO 8601 标准中规定的表示方法。 #15:02:31:表示时间,即下午 3 点 2 分 31 秒。 #+08:00:表示时区,这里是东八区。说明这个时间是基于东八区的时间,也就是北京时间。
<3>普通数组书写格式。
- 在 YAML 里,普通数组可在属性名下方用减号(-)作为数据起始符号,每个数据占一行,减号与数据之间用空格分隔。
subject:- java- mysql- spring
- 除了标准格式,YAML 还支持使用方括号
[]
来表示数组的缩略格式,元素之间用逗号分隔。student:name: 张三age: 18subject:- Java- mysql- spring# 数组书写缩略格式loves: [男,女]
<4>对象数组书写格式。
- 格式一:对象数组可以通过在属性名下方,每个对象使用减号开头,对象的属性以键值对形式缩进书写来表示。
- users是一个对象数组属性,包含两个对象。每个对象有 name 和 age 两个属性,通过缩进明确表示对象的层级关系。这种格式直观地展示了每个对象的结构,易于理解。
# 对象数组格式一 users:- name: Tomage: 4- name: Jerryage: 5
- 另一种对象数组的表示方式是每个对象以减号开始单独占一行,对象的属性在减号下缩进书写。
# 对象数组格式二 users1:-name: Tomage: 4-name: Jerryage: 5
- 对象数组支持缩略格式。将所有对象用方括号括起来,每个对象也用大括号括起,对象内属性以键值对形式书写,属性间用逗号分隔。
# 对象数组缩略格式 users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]
1.5读取yml文件中的数据。
- yml配置文件模拟数据。
jdbc:driverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/hylusername: rootpassword: 123456testArray:- jdbc1- jdbc2
- 依赖项。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- optional 设置为 true 表示该依赖是可选的,不会传递到依赖项目中,避免冲突 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
<1>读取单一数据。(@Value)
- 使用@Value注解时,必须将其写在被 Spring 管控的 bean 的属性名上方。这样在 bean 初始化过程中,才能成功读取yaml配置文件里对应的单一数据 。
package com.hyl.pojo;import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;@Component @Data public class Jdbc {@Value("${jdbc.driverClassName}")private String driverClassName;@Value("${jdbc.url}")private String url;@Value("${jdbc.username}")private String username;@Value("${jdbc.password}")private String password;@Value("${jdbc.testArray[0]}")private String arr1;@Value("${jdbc.testArray[1]}")private String arr2; }
package com.hyl;import com.hyl.pojo.Jdbc; import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest public class JdbcTest {@Resourceprivate Jdbc jdbc;@Testpublic void testJdbc(){System.out.println(jdbc);} }
<2>读取全部数据。(Environment对象)
- 当数据量较大时,逐一读取数据较为繁琐。
- Spring Boot 提供 Environment 对象,可借助自动装配注解 @Resource 将 yaml 文件中的所有数据封装其中。获取属性时,通过 Environment 的 getProperty("?") 方法,传入属性名即可
package com.hyl;import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.core.env.Environment;@SpringBootTest public class JdbcTest02 {@Resourceprivate Environment environment;@Testpublic void test(){System.out.println(environment.getProperty("jdbc.driverClassName"));System.out.println(environment.getProperty("jdbc.url"));System.out.println(environment.getProperty("jdbc.username"));System.out.println(environment.getProperty("jdbc.password"));System.out.println(environment.getProperty("jdbc.testArray[0]"));System.out.println(environment.getProperty("jdbc.testArray[1]"));} }
<3>读取自定义对象数据。
- 单一数据读取繁琐,全数据读取使用不便。
- 而 Java 面向对象,常将一组数据封装为对象。Spring Boot 支持将 yaml 对象数据封装为 Java 对象 。
- 具体操作是定义一个类。1、通过@Component使其成为 Spring 管理的 bean。2、用@ConfigurationProperties(prefix = "xxx")指定加载 yaml 中对应前缀的配置信息。
package com.hyl.pojo;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;@Data @Component @ConfigurationProperties(prefix = "jdbc") public class Jdbc02 {private String driverClassName;private String url;private String username;private String password;private String[] testArray; }
package com.hyl;import com.hyl.pojo.Jdbc02; import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest public class JdbcTest04 {@Resourceprivate Jdbc02 jdbc02;@Testpublic void test(){System.out.println(jdbc02);} }
1.6yaml文件中的数据引用。
- yaml 文件中数据引用的方法。当存在多个具有相同前缀的数据时,可定义变量,通过${变量名}的格式引用变量,避免重复书写。
# 定义基础目录变量 baseDir: /home/user/app # 定义不同用途的目录,通过引用baseDir变量来设置路径 dirs:dataDir: ${baseDir}/datalogDir: ${baseDir}/logstmpDir: ${baseDir}/temp
- 书写含转义字符的字符串时,需用双引号包裹。
filePath: "C:\\Users\\userName\\Documents\\file.txt" menuPath: "system\\user\\settings"
1.7yaml配置随机值。
- 在 Spring Boot 属性配置文件中,可利用 ${random} 语法来生成随机值。
- 支持生成 int 值、long 值、String 字符串等。通过不同后缀或参数限定,能获取特定范围或类型的随机值。
randomVals:# 生成随机字符串randomStr: ${random.value} # 生成随机int值randomInt: ${random.int} # 生成随机long值randomLong: ${random.long} # 生成0 - 9范围内的随机int值randomIntRange1: ${random.int(10)} # 生成12 - 65范围内的随机int值randomIntRange2: ${random.int[12,65]}
1.8多环境开发。(重点)
- 自己电脑上写的Java程序最终要放到别人的服务器上去运行。但每个计算机环境不一样,这就是多环境。开发环境—自己用的,测试环境—公司用的,生产环境——甲方。
<1>yaml 单文件版。
- 通过spring.profiles.active指定激活环境,用“---”分隔不同环境配置。其中 Spring Boot 新版本推荐的配置写法变更。
# 配置激活当前为dev环境 spring:profiles:active: dev --- # 生产环境配置 spring:profiles:active: prod server:port: 8080 --- # 开发环境配置 spring:profiles:active: dev server:port: 8081 --- # 测试环境配置 spring:profiles:active: test server:port: 8082
<2>yaml 多文件版。
- 主配置文件指定激活环境,各环境配置写在独立文件(命名规则为application-环境名.yml )中。
- 公共配置放主配置文件,有区别的放环境配置文件。
- 主配置文件(指定激活 test 环境)。
spring:profiles:active: test
- application-prod.yml (生产环境,端口 8080 )。
server:port: 8080
- application-dev.yml (开发环境,端口 8081 )。
server:port: 8081
- application-test.yml (测试环境,端口 8082 )。
server:port: 8082
<3>properties 多文件版。
- Spring Boot 早期配置格式。主配置文件指定激活环境,环境配置文件按application-环境名.properties命名。
- 主配置文件(指定激活 prod 环境)。
spring.profiles.active=prod
- application-prod.properties (生产环境,端口 8080 )。
server.port=8080
- application-dev.properties (开发环境,端口 8081 )。
server.port=8081
- application-test.properties (测试环境,端口 8082 )
server.port=8082
相关文章:
SpringBoot学习(properties、yml(主流)、yaml格式配置文件)(读取yml配置文件的3种方式)(详解)
目录 一、SpringBoot配置文件详解。 1.1配置文件简介。 1.2配置文件分类。(3种配置文件格式) <1>application.properties(properties格式)。 <2>application.yml(yml格式)。 <3>applicat…...
STM32单片机C语言
1、stdint.h简介 stdint.h 是从 C99 中引进的一个标准 C 库的文件 路径:D:\MDK5.34\ARM\ARMCC\include 大家都统一使用一样的标准,这样方便移植 配置MDK支持C99 位操作 如何给寄存器某个值赋值 举个例子:uint32_t temp 0; 宏定义 带参…...
前端为什么需要单元测试?
一. 前言 对于现在的前端工程,一个标准完整的项目,通常情况单元测试是非常必要的。但很多时候我们只是完成了项目而忽略了项目测试。我认为其中一个很大的原因是很多人对单元测试认知不够,因此我写了这篇文章,一方面期望通过这篇…...
QT 文件和文件夹操作
文件操作 1. 文件读写 QFile - 基本文件操作 // 只写模式创建文件(如果文件已存在会清空内容) file.open(QIODevice::WriteOnly);// 读写模式创建文件 file.open(QIODevice::ReadWrite);// 追加模式(如果文件不存在则创建) fil…...
AIP目录
专注于开发灵活API的设计文档。 AIP是总结了谷歌API设计决策的设计文档,它也为其他人提供了用文档记录API设计规则和实践的框架和系统。 基础1AIP目的和指南2AIP编号规则3AIP版本管理200先例8AIP风格与指导9术语表流程100API设计评审常见问题205Beta版本发布前置条…...
Function Calling的时序图(含示例)
🧍 用户: 发起请求,输入 prompt(比如:“请告诉我北京的天气”)。 🟪 应用: 将用户输入的 prompt 和函数定义(包括函数名、参数结构等)一起发给 OpenAI。 …...
基于尚硅谷FreeRTOS视频笔记——6—滴答时钟—上下文切换
FreeRTOS滴答 FreeRTOS需要有一个时钟参照,并且这个时钟不会被轻易打断,所以最好选择systick 为什么需要时间参照 就是在高优先级任务进入阻塞态后,也可以理解为进入delay()函数后,需要有一个时间参照&…...
Playwright框架入门
Playwright爬虫框架入门 Playwright介绍 playwright官方文档 Playwright是一个用于自动化浏览器操作的开源工具,由Microsoft开发和维护,支持多种浏览器和多种编程语言,可以用于测试、爬虫、自动化任务等场景。 Playwright是基于WebSocket…...
针对渲染圆柱体出现“麻花“状问题解决
圆柱体渲染结果,在侧面有麻花状条纹,边缘不够硬朗,上下的圆看起来不够平,很明显,是法向量导致的。 原始模型 渲染结果 计算点的法向量采用简单的平均法…...
手撕数据结构算法OJ——栈和队列
文章目录 一、前言二、手撕OJ2.1有效的括号2.2用队列实现栈2.2.1初始化2.2.2入栈2.2.3出栈2.2.4取栈顶2.2.5判空2.2.6销毁2.2.7整体代码 2.3用栈实现队列2.3.1初始化2.3.2入队2.3.3出队2.3.4取队头2.3.5判空2.3.6销毁2.3.7整体代码 四、总结 一、前言 兄弟们,今天的…...
基础知识-指针
1、指针的基本概念 1.1 什么是指针 1.1.1 指针的定义 指针是一种特殊的变量,与普通变量存储具体数据不同,它存储的是内存地址。在计算机程序运行时,数据都被存放在内存中,而指针就像是指向这些数据存放位置的 “路标”。通过指针…...
Thymeleaf简介
在Java中,模板引擎可以帮助生成文本输出。常见的模板引擎包括FreeMarker、Velocity和Thymeleaf等 Thymeleaf是一个适用于Web和独立环境的现代服务器端Java模板引擎。 Thymeleaf 和 JSP比较: Thymeleaf目前所作的工作和JSP有相似之处,Thyme…...
ifconfig -bash: ifconfig: command not found
Ubuntu系统安装完成想查看其ip 报错ifconfig -bash: ifconfig: command not found 解决方法 sudo apt update sudo apt install net-tools ip查找成功...
MCP协议量子加密实践:基于QKD的下一代安全通信(2025深度解析版)
一、量子计算威胁的范式转移与MCP协议改造必要性 1.1 传统加密体系的崩塌时间表 根据IBM 2025年量子威胁评估报告,当量子计算机达到4000个逻辑量子比特时(预计2028年实现),现有非对称加密体系将在72小时内被完全破解。工业物联网…...
STM32 基本GPIO控制
目录 GPIO基础知识 编辑IO八种工作模式 固件库实现LED点灯 蜂鸣器 按键基础知识 编辑继电器 震动传感器 433M无线模块 GPIO基础知识 GPIO(General-Purpose input/output,通用输入/输出接口) 用于感知外部信号(输入模式)和控制外部设备&…...
【天外之物】叉乘(向量积)的行列式表示方法
叉乘(向量积)的行列式表示方法如下: 步骤说明: 构造33矩阵: 将三维向量叉乘转换为行列式的形式,需构造一个包含单位向量 i , j , k \mathbf{i}, \mathbf{j}, \mathbf{k} i,j,k 和原向量分量的矩阵&#x…...
北京SMT贴片厂精密制造关键工艺
内容概要 随着电子设备小型化与功能集成化需求日益提升,北京SMT贴片厂在精密制造领域持续突破工艺瓶颈。本文以高密度PCB板贴片全流程为核心,系统梳理从锡膏印刷、元件贴装到回流焊接的关键技术节点,并结合自动化检测与缺陷预防方案…...
服务器架构:SMP、NUMA、MPP及Docker优化指南
文章目录 引言 一、服务器架构基础1. SMP(对称多处理,Symmetric Multiprocessing)2. NUMA(非统一内存访问,Non-Uniform Memory Access)3. MPP(大规模并行处理,Massively Parallel Pr…...
Datawhale春训营赛题分析和总结
1.Datawhale春训营任务一 借助这个云平台,支持类似于这个anaconda相关的交互式的操作,第一个任务就是跑通这个baseline,然后注册账号之后送了对应的相关算力,跑通这个之后需要进行打卡,跑通其实是没问题不大的&#x…...
一键模仿图片风格,图生生APP,实现随时随地“生图自由“
一、什么是"图片模仿"功能? "图片模仿"是图生生AI的功能之一,利用先进的AI技术,分析上传的图片风格、色调、构图等元素,快速生成具有相同风格的图片。无论是产品展示、广告海报还是社交媒体配图,…...
C++——C++11常用语法总结
C11标准由国际标准化组织(ISO)和国际电工委员会(IEC)旗下的C标准委员会(ISO/IEC JTC1/SC22/WG21)于2011年8月12日公布,并于2011年9月出版。2012年2月28日的国际标准草案(N3376)是最接近于C11标准…...
C++17 新特性简解
C17 新特性简解 一、核心语言特性 1. 结构化绑定(Structured Bindings) 用途:解构复合类型(如元组、结构体)为独立变量 示例: #include <iostream> #include <tuple>int main() {// 解构 st…...
【失败】Gnome将默认终端设置为 Kitty
起因 一会儿gnome-terminal一会儿kitty终端,实在是受不了,决定取缔默认的gnome-terminal。 过程 在 Ubuntu 或 Debian 系统上: 确保 Kitty 已经安装。如果未安装,可以在终端中运行命令sudo apt install kitty -y进行安装。 使用系…...
【Easylive】微服务架构在系统中的优缺点的具体体现
【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 在线视频分享系统项目简介 系统概述 该项目是一个基于SpringCloud微服务架构的在线视频分享系统,主要功能包括: • 用户自主发布视频 • 后台视频审核 • 用户互动…...
锁(Mutex)、信号量(Semaphore)与条件量(Condition Variable)
一、同步机制的核心意义 在多线程/多进程编程中,当多个执行流共享资源(如变量、内存、文件)时,可能因操作顺序不确定导致数据竞争(Data Race)。同步机制的作用是: 保证原子性:确保…...
使用pnpm第一次运行项目报错 ERR_PNPM_NO_PKG_MANIFEST No package.json found in E:\
开始用unibestpnpm写一个小程序 运行pnpm init报错 如标题所示没有package.json这个文件 博主犯了一个很愚蠢的错误。。 准备方案手动创建一个json文件 此时才发现没到根目录下,创建了一个项目之后就没有切入文件夹里。 切入根目录再下载就成功啦...
前沿篇|CAN XL 与 TSN 深度解读
引言 1. CAN XL 标准演进与设计目标 2. CAN XL 物理层与帧格式详解 3. 时间敏感网络 (TSN) 关键技术解析 4. CAN XL + TSN 在自动驾驶领域的典型应用...
从零开始学A2A一:A2A 协议的高级应用与优化
A2A 协议的高级应用与优化 学习目标 掌握 A2A 高级功能 理解多用户支持机制掌握长期任务管理方法学习服务性能优化技巧 理解与 MCP 的差异 分析多智能体场景下的优势掌握不同场景的选择策略 第一部分:多用户支持机制 1. 用户隔离架构 #mermaid-svg-Awx5UVYtqOF…...
追赶地球变化的“快镜头“:遥感时间分辨率的奥秘
在地球表面,万物的生长、兴衰和变迁,如同一部永不停歇的电影。而科学家们想要看清每一帧画面,就必须依赖遥感卫星这个"超级摄影师"。今天,我们就来聊聊遥感领域里一个关键的维度——时间分辨率。 想象一下,如…...
轻量还是全量?Kubernetes ConfigMap 与专业配置中心的抉择
文章目录 简介什么是 ConfigMapConfigMap 的核心能力配置存储与注入动态更新与 Kubernetes 原生生态深度集成 ConfigMap 的固有局限专业配置中心对比选型建议结语 简介 在现代微服务架构中,集中式配置管理是保证应用可维护性、可扩展性和安全性的关键环节。Kuberne…...
mybatis plus打印sql日志到指定目录
1、mybatis plus打印sql日志 参考文档:mybatis plus打印sql日志_mybatisplus日志打印-CSDN博客 2、修改 修改InfoLevelLogger Override public void debug(String s) {// 修改这里logger.info(s);log.debug(s); } 增加:log.debug(s); 修改logback.x…...
CUDAfy的使用
此文章是对一篇使用文档的翻译总结 文档地址 https://www.doczj.com/doc/0f2570173.html CUDAfy使用步骤 1. 环境准备 硬件要求:支持CUDA的NVIDIA显卡(如GTX系列)。软件安装: 安装最新版NVIDIA驱动。下载并安…...
DeepSeek 部署中的常见问题及解决方案
DeepSeek(深度求索)大模型部署过程中常见问题的系统性解决方案,涵盖环境配置、模型加载、性能优化、安全防护及企业级部署等核心场景,结合官方文档与社区实践提供可落地的操作指南: 一、环境配置与依赖问题 1. 操作系统与硬件兼容性 问题表现:部署失败提示驱动不兼容或…...
【AI提示词】儿童看护员
提示说明 儿童看护员旨在帮助用户构建一个既专业又富有爱心的儿童看护员角色,以满足儿童在成长过程中的各种需求。 提示词 # 角色 儿童看护员## 注意 1. 儿童看护员应具备亲和力和耐心,以确保与儿童的良好互动。 2. 专家设计应关注儿童的安全、健康和…...
深入解析 Python 中的装饰器 —— 从基础到实战
1. 装饰器基础 1.1 什么是装饰器? 装饰器本质上是一个 Python 函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能。装饰器的返回值也是一个函数对象。 1.2 语法糖: 符号 Python 提供了 符号作为装饰器的语法糖,…...
学习海康VisionMaster之中线查找
一:进一步学习了 今天学习下VisionMaster中的中线查找,这个就是字面意思,输入两条直线,输出两条直线的中线 二:开始学习 1:什么是中线查找?今天这个比较简单,其实这个模块算是一个几…...
笔记整理五
STP生成树 stp生成树是用于解决二层环路问题的协议。 二层环路为有以下三种: 1.广播风暴 2.MAC地址的偏移(每一次循环,都会导致交换机来回刷新MAC地址表记录) 3.多帧复制 stp生成树:需要将原本的环型拓扑结构转换…...
js实现的前端水印
效果 var defaultConfig {content: [], // 水印内容数组fontSize: 14, // 字体大小(px)fontFamily: sans-serif, // 字体color: rgba(255, 255, 255,.3), // 字体颜色rotate: -20, // 旋转角度(度数)zIndex: 2147483647, // 层级globalAlpha: 0.5, // 透明度canvasWidth: 30…...
前端服务器部署报错记录
报错1:Refused to apply style from http://xxxxxxx.online/assets/index.DepkYCYv.css because its MIME type (text/plain) is not a supported stylesheet MIME type, and strict MIME checking is enabled. index-Dnq3oQAv.js:1 解释:浏览器期望加载…...
JAVA中多线程的经典案例
文章目录 一、线程安全的单例模式(一)饿汉模式(二)懒汉模式 二、阻塞队列(一)生产者消费者模型(二)阻塞队列(三)自定义阻塞队列 三、定时器(一&am…...
国产三维CAD皇冠CAD(CrownCAD)在「轨道交通行业」建模教程:轨道列车
在轨道交通行业,复杂系统集成、大规模装配验证与跨地域协同设计始终是核心痛点。传统设计工具难以应对动辄百万级零部件的装配挑战,且数据孤岛、版本混乱、硬件成本高昂等问题长期制约行业数字化转型。皇冠CAD(CrownCAD)作为国产云…...
Linux 日常运维命令大全
Linux 作为一种开源操作系统,在服务器运维中扮演着重要角色。掌握常用的 Linux 命令对于运维人员而言至关重要。本文将整理一份 Linux 服务器运维常用命令大全,帮助你在日常工作中提高效率和准确性。 1. 基础命令 基础命令是Linux操作的起点࿰…...
安全测试报告模板
安全测试报告 一、项目概况 项目名称XX智慧医疗平台被测系统版本V2.3.1测试类型渗透测试漏洞扫描测试时间2024年2月15-20日测试标准OWASP TOP 10 2021 二、测试环境 生产环境镜像: - 服务器:CentOS 7.9 Tomcat 9 - 数据库:MySQL 8.0集群…...
树莓派超全系列教程文档--(31)config.txt常用选项介绍
config.txt常用选项介绍 常用选项常用显示选项hdmi_enable_4kp60 常用硬件配置选项camera_auto_detectdisplay_auto_detectdtoverlaydtparamarm_boostpower_force_3v3_pwm 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 常用选项 常用显示选项 …...
算法-堆+单调栈
堆 首先堆在我们的Java中我们的是一个优先队列类 PriorityQueue 然后我们要弄最大堆和最小堆 最大堆: PriorityQueue<Integer> pq new PriorityQueue<Integer>((a, b) -> b - a); 最小堆: PriorityQueue<Integer> pq new P…...
Charles破解 激活码 Java
第一步,下载charles Download a Free Trial of Charles • Charles Web Debugging Proxy 第二部,生成key,这里使用的是java代码 import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Random;public class test {private static final int ROUNDS 12;p…...
线上蓝桥杯比赛环境配置
1.编译环境(以下是JAVA示例) Java软件开发编程环境 链接: https://pan.baidu.com/s/1JRNx0bkgHmPqQhANSFBNkQ 提取码: ftgw 下载对应的编译器和jdk以及对应的API文档 解压后把eclipse发送到桌面方便使用 2.录屏软件,我这边选择的是OBS St…...
民办生从零学C的第十一天:操作符
每日励志:我们可以随时的转身,但是决不能后退。 一.操作符的分类 算术操作符:、-、*、/、% 移位操作符:<<、>> 位操作符:&、|、^ 赋值操作符:、、-、*、/、%、<<、>>、&…...
疑难问题解决(2)
(1):在k230开发板中,ubuntu操作系统中的文件夹中的k230_sdk文件夹与canmv_k230文件夹的区别,以及 /home/ubuntu/canmv_k230/src/rtsmart/rtsmart/userapps/07_driver_hello 与 /home/ubuntu/k230_sdk/src/big/rt-smart…...
第六章 进阶04 尊重
本周周会给大家讲的议题是:尊重。 用“尊重”给周报文件冠名,周会中打开这个文件,就可以在标题中醒目地看到,加深了大家的印象、勾起了大家的好奇心。坚持长期事项的同时,偶尔也灵光一现给团队管理加入一些小插曲&…...