[6-02-01].第05节:配置文件 - YAML配置文件语法

SpringBoot学习大纲


一、YAML语法

1.1.概述:

  • 1.YAML是一种数据序列化格式
  • 2.它是以数据为中心
  • 3.容易阅读,容易与脚本语言交互,如下图所示:
    在这里插入图片描述

1.2.基本语法

  • 1.key: value:kv之间有空格
  • 2.使用缩进表示层级关系
  • 3.缩进时候不可以使用tab键,只可以使用空格
  • 4.缩进的空格数量不重要,重要的是相同层级的元素只要在缩进后可以齐就可
  • 5.属性和值中:大小写敏感
  • 6.#表示注释
  • 7.字符串不需要加引号:当属性中如果出现了某些特殊的字符,就可以使用双引号包裹起来作为字符解析
    • 单引号会将\n作为字符串输出
    • 双引号会将\n作为换行输出,双引号会改变它的行为,作为换行,单引号不会改变它的行为(双引号会转义,单引不号会转义
      在这里插入图片描述

2.3.数据类型

  • 1.字面量:单个的、不可再分的值:date、boolean、string、number、null
k: v

在这里插入图片描述

  • 2.对象:键值对的集合。map、hash、set、object
行内写法:  k: {k1:v1,k2:v2,k3:v3}
#或k: k1: v1k2: v2k3: v3
  • 3.数组:一组按次序排列的值。array、list、queue
行内写法: k: [v1,v2,v3]
#或者
k:- v1- v2 - v3

在这里插入图片描述


二、配置文件说明:

2.1.配置位置

  • 1.SpringBoot 项目最重要也是最核心的配置文件就是 application.properties
  • 所有的框架配置都可以在这个配置文件中说明
#SPRING CONFIG(ConfigFileApplicationListener)
spring.config.name =#配置文件名(默认 为 'application' )
spring.config.location =#配置文件的位置# 多环境配置文件激活属性
spring.profiles.active=dev #加载 application-dev.properties 配置文件内容
application-dev.properties: #开发环境
application-test.properties: #测试环境
application-prod.properties: #生产环境#activemq
spring.activemq.broker-url #指定 ActiveMQ broker 的 URL,默认自动生成. spring.activemq.in-memory #是否是内存模式,默认为 true. spring.activemq.password #指定 broker 的密码. spring.activemq.pooled #是否创建 PooledConnectionFactory ,而非
ConnectionFactory,默认 false
spring.activemq.user #指定 broker 的用户.#aop
spring.aop.auto #是否支持@EnableAspectJAutoProxy,默认为: true
spring.aop.proxy-target-class #true 为使用 CGLIB 代理,false 为 JDK 代理,默认为 false#application
spring.application.admin.enabled #是否启用 admin 特性,默认为: false
spring.application.admin.jmx-name #指定 admin MBean 的名称,默认为:
org.springframework.boot:type=Admin,name=SpringApplication#artemis(HornetQ 捐献给 apache 后的版本)
spring.artemis.embedded.cluster-password #指定集群的密码,默认是启动时随机生成. spring.artemis.embedded.data-directory #指定 Journal 文件的目录.如果不开始持
久化则不必要指定. spring.artemis.embedded.enabled #是否开启内嵌模式,默认 true
spring.artemis.embedded.persistent #是否开启 persistent store,默认 false. spring.artemis.embedded.queues #指定启动时创建的队列,多个用逗号分隔,默认: []
spring.artemis.embedded.server-id #指定 Server ID. 默认是一个自增的数字,
从 0 开始. spring.artemis.embedded.topics #指定启动时创建的 topic,多个的话逗号分韩顺平 Java 工程师隔,默认: []
spring.artemis.host #指定 Artemis broker 的 host. 默认: localhost
spring.artemis.mode # 指 定 Artemis 的 部 署 模 式 , 默 认 为
auto-detected(也可以为 native or embedded). spring.artemis.port #指定 Artemis broker 的端口,默认为: 61616#autoconfig
spring.autoconfigure.exclude #配置要排除的 Auto-configuration classes. #batch
spring.batch.initializer.enabled #是否在必要时创建 batch 表,默认为 true
spring.batch.job.enabled #是否在启动时开启 batch job,默认为 true
spring.batch.job.names #指定启动时要执行的 job 的名称,逗号分隔,默认所有 job 都会被执行
spring.batch.schema # 指 定 要 初 始 化 的 sql 语 句 路 径 , 默认:classpath:org/springframework/batch/core/schema-@@platform@@.sql)
spring.batch.table-prefix #指定批量处理的表的前缀.#cookie、session 配置
server.session.cookie.comment #指定 session cookie 的 comment
server.session.cookie.domain #指定 session cookie 的 domain
server.session.cookie.http-only #是否开启 HttpOnly. server.session.cookie.max-age #设定 session cookie 的最大 age. server.session.cookie.name #设定 Session cookie 的名称. server.session.cookie.path #设定 session cookie 的路径. server.session.cookie.secure #设定 session cookie 的“Secure” flag. server.session.persistent #重启时是否持久化 session,默认 false
server.session.timeout #session 的超时时间
server.session.tracking-modes #设定 Session 的追踪模式(cookie, url, ssl).#datasource
spring.dao.exceptiontranslation.enabled # 是 否 开 启
PersistenceExceptionTranslationPostProcessor,默认为 true
spring.datasource.abandon-when-percentage-full #设定超时被废弃的连接占到多少比例时要被关闭或上报
spring.datasource.allow-pool-suspension #使用 Hikari pool 时,是否允许连接池..................................

2.2.修改默认配置:

  • 1.各 种 配 置 都 有 默 认 , 可 以 在 resources\application.properties 修 改 ,application.properties 文件我们可以手动创建
#默认 server.port=8080
server.port=10000
#比如: 默认 spring.servlet.multipart.max-file-size=1MB
#该属性可以指定 springboot 上传文件大小的限制
#默认配置最终都是映射到某个类上,比如这里配置会映射到 MultipartProperties
#把光标放在该属性,ctrl+b 就可以定位该配置映射到的类
spring.servlet.multipart.max-file-size=10MB

2.3.常用配置

#端口号
server.port=10000
#应用的上下文路径(项目路径)
server.servlet.context-path=/allModel#指定 POJO 扫描包来让 mybatis 自动扫描到自定义的 POJO
mybatis.type-aliases-package=com.cxs.allmodel.model
#指定 mapper.xml 的路径
#(application 上配置了@MapperScan(扫面 mapper 类的路径)和 pom.xml 中放行了 mapper.xml 后,
# 配 置 mapper-locations 没 有 意 义 。 如 果 mapper 类 和 mapper.xml 不 在 同 一 个 路 径 下 时 ,
mapper-locations 就有用了)
mybatis.mapper-locations=classpath:com/cxs/allmodel/mapper
#session 失效时间(单位 s)
spring.session.timeout=18000
#数据库连接配置
#mysql 数据库 url
mysql.one.jdbc-url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&useSSL=false
#mysql 数据库用户名
mysql.one.username=
#数据库密码
mysql.one.password=
#线程池允许的最大连接数
mysql.one.maximum-pool-size=15
#日志打印:日志级别 trace<debug<info<warn<error<fatal 默认级别为 info,即默认打印 info 及其以
上级别的日志
#logging.level 设置日志级别,后面跟生效的区域,比如 root 表示整个项目,也可以设置为某个包下,
也可以具体到某个类名(日志级别的值不区分大小写)
logging.level.com.cxs.allmodel.=debug
logging.level.com.cxs.allmodel.mapper=debug
logging.level.org.springframework.web=info
logging.level.org.springframework.transaction=info
logging.level.org.apache.ibatis=info
logging.level.org.mybatis=info
logging.level.com.github.pagehelper = info
logging.level.root=info
#日志输出路径
logging.file=/tmp/api/allmodel.log
#配置 pagehelper 分页插件
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
#jackson 时间格式化
spring.jackson.serialization.fail-on-empty-beans=false
#指定日期格式,比如 yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#指定日期格式化时区,比如 America/Los_Angeles 或者 GMT+10
spring.jackson.time-zone=GMT+8
#设置统一字符集
spring.http.encoding.charset=utf8
#redis 连接配置
# redis 所在主机 ip 地址
spring.redis.host=
#redis 服务器密码
spring.redis.password=
#redis 服务器端口号
spring.redis.port=
#redis 数据库的索引编号(0 到 15)
spring.redis.database=14
## 连接池的最大活动连接数量,使用负值无限制
#spring.redis.pool.max-active=8
#
## 连接池的最大空闲连接数量,使用负值表示无限数量的空闲连接
#spring.redis.pool.max-idle=8
#
## 连接池最大阻塞等待时间,使用负值表示没有限制
#spring.redis.pool.max-wait=-1ms
#
## 最小空闲连接数量,使用正值才有效果
#spring.redis.pool.min-idle=0
#
## 是否启用 SSL 连接. ##spring.redis.ssl=false
#
## 连接超时,毫秒为单位
#spring.redis.timeout= 18000ms
#
## 集群模式下,集群最大转发的数量
#spring.redis.cluster.max-redirects=
#
## 集群模式下,逗号分隔的键值对(主机:端口)形式的服务器列表
#spring.redis.cluster.nodes=
#
## 哨兵模式下,Redis 主服务器地址
#spring.redis.sentinel.master=
#
## 哨兵模式下,逗号分隔的键值对(主机:端口)形式的服务器列表
#spring.redis.sentinel.nodes= 127.0.0.1:5050,127.0.0.1:5060

2.4.自定义配置

  • 1.还可以在 properties 文件中自定义配置,通过@Value("${}")获取对应属性值
application.properties 文件
my.website=https://www.baidu.com
  • 2.通过bean实例获取配置文件中的值:
//某个 Bean
@Value("${my.website}")
private String bdUrl;

三、配置生效:

3.1.分析条件配置规则

  • 1.下面是条件配置规则(@Conditionalxxxxxxx)来决定是否进行启动的举例:
    在这里插入图片描述
    在这里插入图片描述

3.2.修改SpringBoot的默认配置:

  • 1.官网查看可以配置的属性
  • 2.SpringBoot默认会在底层配好所有的组件。@ConditionalOnMissingBean注解就实现了如果用户自己配置了就以用户的优先
  • 3.如下给容器中加入了文件上传解析器:
        @Bean@ConditionalOnBean(MultipartResolver.class)  //容器中有这个类型组件@ConditionalOnMissingBean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME) //容器中没有这个名字 multipartResolver 的组件public MultipartResolver multipartResolver(MultipartResolver resolver) {//给@Bean标注的方法传入了对象参数,这个参数的值就会从容器中找。//SpringMVC multipartResolver。防止有些用户配置的文件上传解析器不符合规范// Detect if the user has created a MultipartResolver but named it incorrectlyreturn resolver;}
  • 3.说明:
    • 在@Bean标注的方法multipartResolver()方法上,我们传入了对象参数,只要配置了参数,这个参数的值就会从容器中找
    • 之所以在容器找事为了防止有些用户配置的文件上传解析器不符合规范,然后我们通过查找,然后找到之后就进返回一个符合规范的名称

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87292.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA学习

一、module : 定义&#xff1a; 是构建数字系统的基本单元&#xff0c;用于封装电路的结构和行为。它可以表示从简单的逻辑门到复杂的处理器等任何硬件组件。 1. module 的基本定义 module 模块名 (端口列表);// 端口声明input [位宽] 输入端口1;output [位宽] 输出端口1;ino…

26-计组-存储器与Cache机制

一、存储器与局部性原理 1. 局部性原理 基础概念&#xff1a; 时间局部性&#xff1a;一个存储单元被访问后&#xff0c;短时间内可能再次被访问&#xff08;例如循环变量&#xff09;。空间局部性&#xff1a;一个存储单元被访问后&#xff0c;其附近单元可能在短时间内被访…

I/O 线程 7.3

前言 以下&#xff1a; 概述 1.基础 2.代码演示 3.练习 4.分析题 1.基础 一、线程基础概念 并发执行原理 通过时间片轮转实现多任务"并行"效果 实际为CPU快速切换执行不同线程 线程 vs 进程 线程共享进程地址空间&#xff0c;切换开销更小 进程拥有独立资源&am…

MySQL JSON数据类型完全指南:从版本演进到企业实践的深度对话

&#x1f4ca; MySQL JSON数据类型完全指南&#xff1a;从版本演进到企业实践的深度对话 在当今数据驱动的时代&#xff0c;MySQL作为最受欢迎的关系型数据库之一&#xff0c;不断演进以满足现代应用的需求。JSON数据类型的引入&#xff0c;让MySQL在保持关系型数据库优势的同时…

BI × 餐饮行业 | 以数据应用重塑全链路业务增长路径

在竞争激烈的餐饮行业中&#xff0c;数据已成为企业保持竞争力的关键资产。通过深入分析顾客数据&#xff0c;餐饮企业能够洞察消费者的需求和偏好&#xff0c;从而提供更加精准和个性化的服务。此外&#xff0c;利用数据优化业务管理&#xff0c;降低成本&#xff0c;并提高运…

【学习线路】机器学习线路概述与内容关键点说明

文章目录 零、机器学习的企业价值一、基础概念1. 机器学习定义2. 学习类型3. 学习范式 二、核心算法与技术1. 监督学习2. 无监督学习3. 模型评估与优化 三、深度学习与神经网络1. 神经网络基础2. 深度学习框架3. 应用场景 四、工具与实践1. 数据处理2. 模型部署3. 机器学习的生…

Linux 命令:cp

Linux cp 命令详细教程 cp 是 Linux 系统中最常用的命令之一&#xff0c;用于复制文件或目录。它可以将源文件/目录复制到指定的目标位置&#xff0c;支持批量复制、强制覆盖、保留文件属性等功能。下面详细介绍其用法。资料已经分类整理好&#xff1a;https://pan.quark.cn/s…

java分页插件| MyBatis-Plus分页 vs PageHelper分页:全面对比与最佳实践

MyBatis-Plus分页 vs PageHelper分页&#xff1a;全面对比与最佳实践 一、分页技术概述 在Java持久层框架中&#xff0c;分页是高频使用的功能。主流方案有&#xff1a; MyBatis-Plus分页&#xff1a;MyBatis增强工具的内置分页方案PageHelper分页&#xff1a;独立的MyBatis…

PROFINET转MODBUS TCP网关在机械臂通信操作中的应用研究

在特定的汽车零部件生产工厂焊接生产线上&#xff0c;机械臂被应用于焊接作业&#xff0c;其控制体系基于Profinet协议。同时&#xff0c;工厂的自动化控制体系以西门子S7-1200PLC为核心&#xff0c;通过ModbusTCP协议实现数据交换。为实现焊接过程的自动化控制以及生产数据的实…

Mac中如何Chrome禁用更新[update chflags macos]

写在前面 在 macOS 系统中&#xff0c;系统更新提示的小红点常常让人不胜其扰。 尤其是当你希望保持现有系统的稳定性&#xff0c;或因兼容性问题暂不想升级时&#xff0c;这个小红点就像一个顽固的提醒。 - windowsMac版直接删除更新程序, 有效 cd ~/Library/Google/Googl…

LoRA使用-多个LoRA

LoRA的风格分类 不用去记它有什么很特别的风格&#xff0c;简单来说基础模型就像一个全能画手&#xff0c;什么都能画&#xff0c;而LoRA是在某个风格中经过特训的它的一个分身。使得它更精通该风格。 关于LoR风格分类&#xff1a;提示词撰写公式 Checkpoint&LoRA对比 训…

牛客刷题 — 【排序】[NOIP2012] 国王的游戏(高精度结构体排序)

1.题面&#xff1a;传送门 2. 思路&#xff1a; 相邻的两个大臣的先后顺序只会互相影响&#xff0c;并不会影响其他人的金币数。 假设前 i-1 个人左手上的数乘积为 s 。 ① 若 A 大臣排在B 大臣的前面&#xff0c;则&#xff1a; s 此时的金币数最大值为 。 ② 若B大臣排…

grpc 和限流Sentinel

基于gRPC的微服务通信模块技术方案书 1. 总体架构设计 #mermaid-svg-TiN9cudEfW5mCWHm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TiN9cudEfW5mCWHm .error-icon{fill:#552222;}#mermaid-svg-TiN9cudEfW5mCWHm…

经典灰狼算法+编码器+双向长短期记忆神经网络,GWO-Transformer-BiLSTM多变量回归预测,作者:机器学习之心!

经典灰狼算法编码器双向长短期记忆神经网络&#xff0c;GWO-Transformer-BiLSTM多变量回归预测&#xff0c;作者&#xff1a;机器学习之心&#xff01; 目录 经典灰狼算法编码器双向长短期记忆神经网络&#xff0c;GWO-Transformer-BiLSTM多变量回归预测&#xff0c;作者&#…

VGG Image Annotator (VIA):一款免费的数据标注软件介绍与使用

VGG Image Annotator (VIA)&#xff1a;一款免费的数据标注软件介绍与使用 在计算机视觉领域&#xff0c;数据标注是训练机器学习模型的基础步骤之一&#xff0c;而标注工具的选择直接影响标注的效率和准确性。众多标注工具中&#xff0c;VGG Image Annotator (VIA) 是一个开源…

CSS实现百分比水柱图

背景 在echarts没发现有可以直接使用的展示百分比的柱形图,只好自己封装一个组件使用 实现思路 一、图形拆解 要实现的组件是一个 可配置的圆柱形液柱图组件&#xff0c;常用于展示比例进度&#xff0c;比如任务完成度、指标达成率等。把图拆成最小单元然后拼接起来&#x…

详解 rzsz 工具:Windows 与 Linux 文件传输

&#xff08;Linux之软件包管理器&#xff08;CentOS系统&#xff09; —— yum-CSDN博客&#xff09;rzsz工具之前我在这篇文章中介绍过&#xff0c;现在重新详细介绍一下该工具。rzsz 是一个用于在 Windows 和 Linux 系统之间传输文件的工具集&#xff0c;通常通过终端模拟器…

网络编程1(UDP)

网络编程套接字&#xff08;socket api&#xff09; 了解了网络的一些概念&#xff0c;接下来就要进行网络中的跨主机通信&#xff0c;了解网络中的一些API&#xff0c;这里谈到的API都是针对传输层进行的&#xff0c;这是因为我们编写的代码是在应用层&#xff0c;而传输层就…

【电机】定点线性映射

这是一个定点数线性映射的问题&#xff0c;通常用于将浮点型的物理量&#xff08;如速度、位置、扭矩&#xff09;转换为嵌入式系统中使用的整型数据格式&#xff0c;便于通过 CAN 总线或其它通信协议发送给电机控制器。 我们来逐步解析这个过程&#xff0c;并以“速度”为例说…

Spring Cloud 微服务(远程调用与熔断机制深度解析)

&#x1f4cc; 摘要 在微服务架构中&#xff0c;服务之间的远程调用是构建分布式系统的核心环节。然而&#xff0c;随着服务数量的增加和网络复杂度的提升&#xff0c;调用失败、延迟高、异常等问题变得越来越频繁。 为此&#xff0c;Spring Cloud 提供了强大的远程调用组件 …