springboot:YAML语言整体概述

YAML是什么? YAML的全称最初为“Yet Another Markup Language”(另一种标记语言),后更改为“YAML Ain’t Markup Language”,强调其数据描述属性而非文档标记功能。YAML(YAML Ain’t Markup Language)是一种以数据为中心、高度可读的序列化语言,广泛应用于配置文件、数据交换和自动化工具中。该示例展示了YAML在真实场景中的核心语法和结构化表达能力,结合注释和缩进,使其成为DevOps领域配置管理的首选格式。描述资源的元数据,如名称( 阅读详情

YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。

它的基本语法规则如下。

大小写敏感
使用缩进表示层级关系
缩进时不允许使用Tab键,只允许使用空格。
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

# 表示注释,从这个字符一直到行尾,都会被解析器忽略。

YAML 支持的数据结构有三种。

对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
纯量(scalars):单个的、不可再分的值

以下分别介绍这三种数据结构。

二、对象

对象的一组键值对,使用冒号结构表示。

animal: pets

转为 JavaScript 如下。

{ animal: 'pets' }

Yaml 也允许另一种写法,将所有键值对写成一个行内对象。

hash: { name: Steve, foo: bar }

转为 JavaScript 如下。

{ hash: { name: 'Steve', foo: 'bar' } }

三、数组

一组连词线开头的行,构成一个数组。

- Cat - Dog - Goldfish

转为 JavaScript 如下。

[ 'Cat', 'Dog', 'Goldfish' ]

数据结构的子成员是一个数组,则可以在该项下面缩进一个空格。

- - Cat - Dog - Goldfish

转为 JavaScript 如下。

[ [ 'Cat', 'Dog', 'Goldfish' ] ]

数组也可以采用行内表示法。

animal: [Cat, Dog]

转为 JavaScript 如下。

{ animal: [ 'Cat', 'Dog' ] }

四、复合结构

对象和数组可以结合使用,形成复合结构。

languages: - Ruby - Perl - Python websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org

转为 JavaScript 如下。

{ languages: [ 'Ruby', 'Perl', 'Python' ], websites: { YAML: ' yaml.org', Ruby: ' ruby-lang.org', Python: ' python.org', Perl: ' use.perl.org' } }

五、纯量

纯量是最基本的、不可再分的值。以下数据类型都属于 JavaScript 的纯量。

字符串
布尔值
整数
浮点数
Null
时间
日期

数值直接以字面量的形式表示。

number: 12.30

转为 JavaScript 如下。

{ number: 12.30 }

布尔值用true和false表示。

isSet: true

转为 JavaScript 如下。

{ isSet: true }

null用~表示。

parent: ~

转为 JavaScript 如下。

{ parent: null }

时间采用 ISO8601 格式。

iso8601: 2001-12-14t21:59:43.10-05:00

转为 JavaScript 如下。

{ iso8601: new Date('2001-12-14t21:59:43.10-05:00') }

日期采用复合 iso8601 格式的年、月、日表示。

date: 1976-07-31

转为 JavaScript 如下。

{ date: new Date('1976-07-31') }

YAML 允许使用两个感叹号,强制转换数据类型。

e: !!str 123 f: !!str true

转为 JavaScript 如下。

{ e: '123', f: 'true' }

六、字符串

字符串是最常见,也是最复杂的一种数据类型。

字符串默认不使用引号表示。

str: 这是一行字符串

转为 JavaScript 如下。

{ str: '这是一行字符串' }

如果字符串之中包含空格或特殊字符,需要放在引号之中。

str: '内容: 字符串'

转为 JavaScript 如下。

{ str: '内容: 字符串' }

单引号和双引号都可以使用,双引号不会对特殊字符转义。

s1: '内容\n字符串' s2: "内容\n字符串"

转为 JavaScript 如下。

{ s1: '内容\\n字符串', s2: '内容\n字符串' }

单引号之中如果还有单引号,必须连续使用两个单引号转义。

str: 'labor''s day'

转为 JavaScript 如下。

{ str: 'labor\'s day' }

字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。

str: 这是一段 多行 字符串

转为 JavaScript 如下。

{ str: '这是一段 多行 字符串' }

多行字符串可以使用|保留换行符,也可以使用>折叠换行。

this: | Foo Bar that: > Foo Bar

转为 JavaScript 代码如下。

{ this: 'Foo\nBar\n', that: 'Foo Bar\n' }

+表示保留文字块末尾的换行,-表示删除字符串末尾的换行。

s1: | Foo s2: |+ Foo s3: |- Foo

转为 JavaScript 代码如下。

{ s1: 'Foo\n', s2: 'Foo\n\n\n', s3: 'Foo' }

字符串之中可以插入 HTML 标记。

message: | <p style="color: red"> 段落 </p>

转为 JavaScript 如下。

{ message: '\n<p style="color: red">\n 段落\n</p>\n' }

七、引用

锚点&和别名*,可以用来引用。

defaults: &defaults adapter: postgres host: localhost development: database: myapp_development <<: *defaults test: database: myapp_test <<: *defaults

等同于下面的代码。

defaults: adapter: postgres host: localhost development: database: myapp_development adapter: postgres host: localhost test: database: myapp_test adapter: postgres host: localhost

&用来建立锚点(defaults),<<表示合并到当前数据,*用来引用锚点。

下面是另一个例子。

- &showell Steve - Clark - Brian - Oren - *showell

转为 JavaScript 代码如下。

[ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]

八、函数和正则表达式的转换

这是 JS-YAML 库特有的功能,可以把函数和正则表达式转为字符串。

# example.yml fn: function () { return 1 } reg: /test/

解析上面的 yml 文件的代码如下。

var yaml = require('js-yaml'); var fs = require('fs'); try { var doc = yaml.load( fs.readFileSync('./example.yml', 'utf8') ); console.log(doc); } catch (e) { console.log(e); }

从 JavaScript 对象还原到 yaml 文件的代码如下。

var yaml = require('js-yaml'); var fs = require('fs'); var obj = { fn: function () { return 1 }, reg: /test/ }; try { fs.writeFileSync( './example.yml', yaml.dump(obj), 'utf8' ); } catch (e) { console.log(e); }

九、参考链接

(完)

文档信息

作者: 阮一峰

  • 发表日期: 2016年7月 4日

社交媒体:

twitter,

weibo


我们可能在spring配置文件里见到过.yml格式的东东,配置文件不都是.propertie或者.xml文件吗?.yml是什么鬼,今天我带你们来一探究竟。

YAML(Yet Another Markup Language)(发音 /ˈjæməl/ )

一种基于Unicode容易阅读,容易和脚本语言交互的,用来表达资料序列的编程语言。

适应场景

  1. 脚本语言:由于实现简单,解析成本很低,YAML 特别适合在脚本语言中使用

  1. 序列化: YAML是由宿主语言数据类型直转,的比较适合做序列化。

  1. 配置文件:写 YAML 要比写 XML 快得多(无需关注标签或引号),并且比 INI 文档功能更强。由于兼容性问题,不同语言间的数据流转建议不要用 YAML。

语言优点

  1. YAML易于人们阅读。

  1. YAML数据在编程语言之间是可移植的。

  1. YAML匹配敏捷语言的本机数据结构。

  1. YAML具有一致的模型来支持通用工具。

  1. YAML支持单程处理。

  1. YAML具有表现力和可扩展性。

  1. YAML易于实现和使用。

YAML 语法

  1. 使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不能使用 Tab,各个系统 Tab对应的 Space 数目可能不同,导致层次混乱)

  1. ‘#’表示注释,只能单行注释,从#开始处到行尾

  1. 破折号后面跟一个空格(a dash and space)表示列表

  1. 用冒号和空格表示键值对 key: value

  1. 简单数据(scalars,标量数据)可以不使用引号括起来,包括字符串数据。用单引号或者双引号括起来的被当作字符串数据,在单引号或双引号中使用C风格的转义字符

Sequence of Scalars 简单数据列表
  1. - Mark McGwire

  1. - Sammy Sosa

  1. - Ken Griffey

Mapping Scalars to Scalars 简单数据键值对以及注释
  1. hr:65# Home runs

  1. avg:0.278# Batting average

  1. rbi:147# Runs Batted In

Mapping Scalars to Sequences 简单数据列表键值对
  1. american:

  1. - Boston Red Sox

  1. - Detroit Tigers

  1. -New York Yankees

  1. national:

  1. -New York Mets

  1. - Chicago Cubs

  1. - Atlanta Braves

Sequence of Mappings 键值对列表
  1. -

  1. name:MarkMcGwire

  1. hr: 65

  1. avg: 0.278

  1. -

  1. name:SammySosa

  1. hr: 63

  1. avg: 0.288

YAML 还支持流类型,用中括号括起来表示列表,用逗号分隔元素;用大括号括起来表示键值对,用逗号分隔元素。

Sequence of Sequences 列表的列表
  1. -[name , hr, avg ]

  1. -[Mark McGwire, 65, 0.278]

  1. -[Sammy Sosa , 63, 0.288]

Mapping of Mappings 键值对的键值对
  1. MarkMcGwire: {hr:65, avg:0.278}

  1. SammySosa: {

  1. hr:63,

  1. avg:0.288

  1. }

yaml 官方网站:http://www.yaml.org

yaml 官方文档:http://www.yaml.org/spec/1.2/spec.html


YAML Ain't Markup Language

和GNU一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。

YAML不是XML。

为什么不是XML呢?因为:

  • YAML的可读性好。

  • YAML和脚本语言的交互性好。

  • YAML使用实现语言的数据类型。

  • YAML有一个一致的信息模型。

  • YAML易于实现。

上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:

  • YAML可以基于流来处理;

  • YAML表达能力强,扩展性好。

总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。

更多的内容及规范参见http://www.yaml.org。

语法

Structure通过空格来展示。Sequence里的项用"-"来代表,Map里的键值对用":"分隔.

这几乎就是所有的语法了.

比如……

一般YAML文件扩展名为.yaml。比如:John.yaml

12345678910name: John Smithage: 37spouse: name: Jane Smith age: 25children: - name: Jimmy Smith age: 15 - name: Jenny Smith age 12

John今年37岁,有一个幸福的四口之家。两个孩子Jimmy 和Jenny活泼可爱。妻子Jane年轻美貌。

如果深入研究的话还可能发现一些社会问题。

可见YAML的可读性是不错。

JYaml——YAML的Java实现

YAML已经有了不少实现,详细的实现列表参见http://www.yaml.org/download.html。

其中JYaml(http://jyaml.sourceforge.net)是YAML的Java实现。

JYaml简介

YAML使用实现语言的数据类型。我们看一下一些JYaml支持的Java数据类型:

  • 原始数据和封装类(比如int,java.lang.Integer)

  • JavaBean兼容对象(Structure支持)

  • Collection (sequence支持)

  • List

  • Set

  • Map (map支持)

  • Arrays (sequence支持)

  • BigInteger 和BigDecimal

  • Date

我们给出John.yaml的java描述:

1234567public class Person { private String name; private int age; private Person sponse; private Person[] children; // setXXX, getXXX方法略.}

现在让我们装配一个Jone:

12345678910111213Person john = new Person();john.setAge(37);john.setName("John Smith");Person sponse = new Person();sponse.setName("Jane Smith");sponse.setAge(25);john.setSponse(sponse);Person[] children = {new Person(), new Person()};children[0].setName("Jimmy Smith");children[0].setAge(15);children[1].setName("Jenny Smith");children[1].setAge(12);john.setChildren(children);

使用JYaml把Jone“Dump”出来:

12File dumpfile = new File("John_dump.yaml");Yaml.dump(john, dumpfile);

下面我们看看John_dump.yaml是什么样子:

12345678910111213--- !yaml.test.internal.Personage: 37children: !yaml.test.internal.Person[] - !yaml.test.internal.Person age: 15 name: Jimmy Smith - !yaml.test.internal.Person age: 12 name: Jenny Smithname: John Smithsponse: !yaml.test.internal.Person age: 25 name: Jane Smith

其中!yaml.test.internal.Person是一些类型的信息。load的时候需要用。

现在用JYaml把Jone_dump.yaml load进来:

1Person john2 = (Person) Yaml.loadType(dumpfile, Person.class);

还可以用下面的代码dump出没有类型信息的John.yaml:

1Yaml.dump(john,dumpfile, true);

我们再来看看JYaml对流处理的支持。

为简便起见,我们只是把同一个john写10次:

1234567YamlEncoder enc = new YamlEncoder(new FileOutputStream(dumpfile)); for(int i=0; i<10; i++){ john.setAge(37+i); enc.writeObject(john); enc.flush(); }enc.close();

下面再把这十个对象一个一个读出来(注意while循环退出的方式):

1234567891011YamlDecoder dec = new YamlDecoder(new FileInputStream(dumpfile));int age = 37;while(true){ try{ john = (Person) dec.readObject(); assertEquals(age, john.getAge()); age++; }catch(EOFException eofe){ break; }}

JYaml对JDK14的支持

JYaml的源码是基于JVM5的。也提供对JVM5功能的一些支持,比如对枚举类型的支持。

JYaml的JVM14的支持是通过retrotranslator(http://retrotranslator.sourceforge.net). retrotranslator使用ASM(http://asm.objectweb.org )动态修改JVM5字节码成JVM14,使JYaml在JVM14下可用。会牺牲一些效率。Debug时也会失真。

我修改了JYaml作者Toby Ho的一些源码(基于Beta2.2),使之与JVM14兼容。当然,为此也去掉了对JVM5才有的类型的支持(比如枚举类型). 这个牺牲应该是值得的。需要的人可以来信索取。

YAML和SDO(只讨论双方的java实现)

如果读者想了解更多SDO的概念, 请参见http://www.ibm.com/developerworks/library/specification/j-commonj-sdowmt/index.html 。这里我们只讨论SDO的java实现。

SDO里有一个很重要的概念,DataObject。从DataObject的接口里,可以看出有两类的数据类型,一类是JYaml支持的,诸如String, List之类,一类是DataObject。因此我们只需要增加一种支持DataObject的类型,就可以完成对SDO DataObject的支持。

不妨叫YamlDataObject。下面是它的数据结构。

12345public class YamlDataObject { private String uRI; private String name; private Map attributes;}

YamlDataObject里用到的类型,都是JYaml能够支持的。其中,uRI和name用来描述DataObject自身。attributes来描述DataObject里的值。这些值可能为DataObject,也可能是JYaml所支持的其他类型。我们希望用YamlDataObject来担当DataObject的角色,因此YamlDataObject和DataObject要能互相转化。增加两个API:

12private static YamlDataObject newInstance(DataObject dataobject){...private DataObject toDataObject() {...

上面两个之所以是private的,是因为我们打算遵照JYaml的习惯,增加两个接口,dump和load,这样newInstance和toDataObject只在内部使用了。下面是dump和load的定义:

1234public static void dump(DataObject dataobject, File dumpfile) throws FileNotFoundException{...public static Object load(File file) throws FileNotFoundException{...

下面是一小段测试代码:

12345678910// ... create dataobject ...File bodump=new File("bodump.yaml");YamlDataObject.dump(dataobject,bodump);assertTrue(bodump.exists());DataObject dataobject2 = (DataObject) YamlDataObject.load(bodump); // check resultassertNotNull(dataobject2);for(int i=0; i<5; i++){ assertEquals(dataobject.get(i),dataobject2.get(i));}

具体的实现细节就不谈了。读者可以作为练习题,熟悉一下这两个数据整合方案。

YAML和Ruby

Ruby和YAML的联系,甚至比Java与XML的联系还要紧密。Ruby把YAML用到了和数据相关的方方面面。配置文件的约定格式是YAML。同时YAML还是Ruby的文本序列化格式,就像XML是SDO的文本序列化格式一样。

不夸张的说,YAML是Ruby中流动的血液。

那,Ruby为什么不选XML呢?

其一,XML对Ruby这样的脚本语言而言,解析起来比较困难。效率肯定是会有问题。Ruby的XML解析没有完全实现,走的是实用主义的路线,可能也缘于此。而YAML要轻快很多。

另外,XML使用自定义类型。就算解析出来,也不能直接用,还要再转一次。而YAML不定义自己的类型,直接使用宿主语言本身类型,直截了当。

下面给一个Ruby YAML的简介。

我们使用Ruby写一个Person类:

123456789class Person attr_accessor :name, :age, :sponse, :children def initialize(name, age, sponse=nil, children=nil) @name = name @age = age @sponse = sponse @children = children endend

把John装配起来:

123jane = Person.new("Jane Smith", 25)children = [Person.new("Jimmy Smith", 15), Person.new("Jenny Smith", 12)]john = Person.new("John Smith", 37, jane, children)

Dump出John到John.yaml:

123File.open('John_ruby.yaml', 'w') do |os| YAML::dump(john, os)end

我们看看Dump的结果:

12345678910111213141516171819--- !ruby/object:Personage: 37children:- !ruby/object:Person age: 15 children: name: Jimmy Smith sponse:- !ruby/object:Person age: 12 children: name: Jenny Smith sponse:name: John Smithsponse: !ruby/object:Person age: 25 children: name: Jane Smith sponse:

仔细观察会发现和JYaml Dump出来的还是有些区别的。

首先类型信息不一样。这还好说,虽然Ruby load Java的不太可能,但Java加载Ruby的应该没问题。

还有就是一些实现上细微的区别。比如Ruby::Yaml的"spone:",JYaml认为是不合法的。还有children的不缩行。尽管Ruby::Yaml很流行,但JYaml认为这是Ruby的Bug。网上有相应的争论。

不过在一个语言里使用还是没问题的。下面是load John的代码:

1john2 = File.open('John.yaml') { |is| YAML::load(is) }

YAML的Ruby实现出现的很早。但由于某些原因,YAML的Ruby实现是不严格的。随着其他语言的YAML实现慢慢出现,这个问题日益明显了。

毕竟每个实现语言的类型不一样的,不同语言文化也不同。因此不同实现的YAML的交互是个问题。兼容性需要YAML规范来保证。而具体的实施还有很长的道路要走。

但YAML在单一语言中,YAML的应用是没有问题的。

YAML在Ruby On Rails中经常用作配置文件。比如数据库信息的配置:

12345678910111213test: adapter: mysql database: weblog_test username: root password: host: localhost production: adapter: mysql database: weblog_production username: root password: host: localhost

熟悉ROR的读者应该能看出这是`config/database.yml'文件。

YAML的适用范围

由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用。列一下现有的语言实现:Ruby,Java,Perl,Python,PHP,OCaml,JavaScript。除了Java,其他都是脚本语言.

YAML比较适合做序列化。因为它是宿主语言数据类型直转的。

YAML做配置文件也不错。比如Ruby on Rails的配置就选用的YAML。对ROR而言,这很自然,也很省事.

由于兼容性问题,不同语言间的数据流转建议现在不要用YAML.

YAML存在的意义

无论多么完美的事物,都需要有对立面,有说“NO”的声音。XML也不例外。当然,站在主流的对立面,需要勇气和智慧。

YAML和XML不同,没有自己的数据类型的定义,而是使用实现语言的数据类型。这一点,有可能是出奇制胜的地方,也可能是一个败笔。如果兼容性保证的不好的话,YAML数据在不同语言间流转会有问题。如果兼容性好的话,YAML就会成为不同语言间数据流通的桥梁。建议yaml.org设立兼容认证机制,每个语言的实现必须通过认证。

假如兼容性没问题的话,YAML就太完美了。轻巧,敏捷,高效,简便,通用。这才是理想中的数据模型。当然就现在而言,这还只是个理想。

springboot 处理yaml文件或字符串 添加依赖: <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml --> <dependency> <groupId>com.fasterxml.jackson.dataforma... 阅读详情

相关推荐

SpringBoot系列之YAML配置用法学习笔记

SpringBoot的全局配置文件有两种: application.properties application.yml 配置文件的作用:修改SpringBoot自动配置的默认值,主要是默认值,因为SpringBoot启动时会自动加载很多默认配置,详细的可以参考我之前博客源码学习系列之SpringBoot自动配置 YAML ...

Nicky's blog 9091

k8s-----资源管理

3.1 资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。 kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。 kubernetes的最小管理单元是pod而不是容器,所以只能将容器放在Pod中,而kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。 Pod可以提供服务之后,就要考虑.

qq_36669347的博客 592

深入SpringBoot:YAML配置插件与最佳实践

插件是Spring Boot生态系统中的一个小而强大的工具,主要用于生成和管理配置类的元数据。其核心作用是通过扫描配置类中的注解如,自动生成配置项的文档信息,并在IDE中提供配置提示功能。这样开发者在编写配置文件时能够获得实时的提示和验证,极大地提高了开发效率和配置的准确性。当开发者定义了带有注解的配置类后,该插件会在编译时扫描这些类,并根据注解内的描述信息生成文件。这个JSON文件会被Spring Boot用来为IDE提供自动完成功能,并在运行时加载配置信息。除了提供自动提示外,

weixin_32312889的博客 1194

【YAML知识】YAML 简介及语法,绝对干货

本文详细的介绍了YAML的特点、规范、语法等,绝对干货满满。

小青龍 的博客 5万+

Win11网络卡顿?用Wireshark抓包5分钟定位问题(保姆级实战)

本文详细介绍了如何使用Wireshark在Win11系统中快速定位网络卡顿问题。通过5分钟抓包分析,作者成功发现TCP重传率高达37%的罪魁祸首,并提供了从准备工作到实战分析的保姆级教程,帮助用户解决游戏卡顿、视频会议延迟等常见网络问题。

weixin_28839629的博客 306

基于STM32的馆藏文物保存环境监测系统设计与实现

针对馆藏文物保存环境中温湿度、光照、有害气体等参数波动易导致文物损坏的问题,本文设计了一种基于STM32微控制器的馆藏文物保存环境监测系统。该系统以STM32L431RCT6为核心,集成高精度传感器实现多参数实时采集,通过有线与无线结合的通信方式构建监测网络,具备数据存储、异常预警、远程监控等功能。测试结果表明,系统温湿度测量精度分别达±0.2℃、±2%RH,光照与有害气体检测误差≤5%,可满足文物保存环境的高精度监测需求,为文物保护提供科学的数据支撑。

m0_74026776的博客 1542

什么是 YAML:技术特性、应用场景与实践指南

YAML 是一种轻量级数据序列化格式,通过缩进和最少的标点符号(如冒号、破折号)表示嵌套的键值对列表和标量。它于 2001 年由和创建,最初命名为,后改为递归缩写,强调其数据导向而非文档标记的特性。根据官方 YAML 网站(yaml.org),YAML 是 JSON 的超集,意味着所有合法 JSON 文件都是合法 YAML 文件,但 YAML 提供更简洁的语法和更高的可读性。它的设计灵感来源于 Python 的缩进风格和 Perl 的数据结构,旨在兼顾人类可读和机器解析。

lssffy的博客 2680

8台 × 8卡 910B NPU之顶尖大模型选型分析

本文对比了2026年主流大语言模型在昇腾910B NPU集群上的部署方案。重点评估了GLM5、MiniMax M2.5、Kimi K2.5、DeepSeek V3.2和Qwen 3.5旗舰版等候选模型,从部署需求(显存占用)、能力表现(基准测试、多模态支持)和NPU生态适配度三个维度进行分析。结果显示DeepSeek V3.2综合表现最优:支持BF16/W8A8/INT4量化,在4TB显存环境下可实现2000+ TPS,首token延迟<100ms,且具备官方NPU支持。备选方案Qwen 3.5旗舰版

FeelTouch Labs 754

YAML配置文件基本用法总结

一.简介 YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。 它非常适合用来做以数据为中心的配置文件。 二.基本的语法结构 key: value;key:与value之间有空格 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab,只允许空格(但是在idea中可以放心使用tab来进行缩进,目前还没有出现什么问题)

MrYushiwen的博客 6415

【Telephony】Telephony总纲!Phone进程流程(AOSP)

整个Framework层的Telephony框架运行在一个叫做Phone(com.android.phone)的进程中。 Phone进程启动的过程中,会初始化非常多的分支功能,SIM卡流程初始化就是其中之一,所以我觉得有必要写一下Phone进程的框架

weixin_44513784的博客 1975

Python库CloudScraper详细使用(绕过 Cloudflare 的反机器人页面的 Python 模块)

CloudScraper是一个专门用于绕过Cloudflare反机器人保护的Python库,它基于requests库构建,能够处理Cloudflare的5秒盾、WAF和人机验证等防护机制。

数据知道的博客 1万+

SpringBoot学习:yaml配置

1、前言 在之前的ssm框架的学习中,我们一般使用xml以及properties进行配置,可以很方便的配置资源。在SpringBoot的学习中,我们还将会学习到另外一种配置方式,那就是使用yaml进行配置。 2、几种配置方式的区别 xml配置 xml的配置方式使用相当广泛。在原生的JavaWeb阶段,我们用来配置web.xml,在ssm框架的学习中,我们用来配置mybatis-config.xml,Mapper.xml,applicationContext.xml,在Maven,Tomcat…我们随处可

weixin_51624761的博客 5244

基于 FPGA 的 CNN 卷积神经网络之池化层 Verilog 实现

池化层是卷积神经网络(CNN)中的关键组件,用于降低特征图的维度,减少计算量和防止过拟合。常见的池化操作包括最大池化和平均池化。FPGA 提供了高效的并行处理能力,可以加速这些操作。池化层在 CNN 中扮演重要角色,通过降低数据维度提升计算效率。在 FPGA 上实现池化层,可以充分利用硬件资源实现高效的并行计算,有助于提高实时应用中的推理速度。

走向CTO的路上... 1256

狂神说SpringBoot03:yaml配置注入

狂神说SpringBoot系列连载课程,通俗易懂,基于SpringBoot2.2.5版本,欢迎各位狂粉转发关注学习。未经作者授权,禁止转载yaml语法学习配置文件SpringBoot使用...

狂神说 7232

【软件系统架构】系列四:嵌入式软件-NPU(神经网络处理器)系统及模板

NPU(Neural Processing Unit) 是专门用于人工神经网络推理与训练的处理器,具备高并行、低功耗、低延迟等特点。它是边缘 AI、自动驾驶、智能摄像头、语音识别等场景中的关键硬件。

moton2017的博客 2248

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SpringBoot之YAML文件的使用

在当今的软件开发领域,Spring Boot 已经成为了一个非常流行和广泛使用的框架。它简化了 Java 应用程序的开发过程,使开发者能够更加高效地构建企业级应用。在 Spring Boot 中,配置文件是应用程序的重要组成部分。而 YAML 作为一种人性化的表现形式,因其简洁、易读和易于维护的特点,逐渐成为了 Spring Boot 配置文件的首选格式。在这篇博客中,我将向你介绍 YAML 文件在 Spring Boot 中的使用。

liubopro666的博客 1649

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SpringBoot的yaml配置注入

yaml语法学习 配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的 application.properties 语法结构 :key=value application.yml 语法结构 :key:空格 value 配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了; 比如我们可以在配置文件中修改Tomcat 默认启动的端口号!测试一下! server.port=8081 yaml概述 YAML是 “

学不死就往死里学 3739

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SpringBoot03:yaml配置注入

YAML是 "YAML Ain't a Markup Language" (YAML不是一种标记语言)的递归缩写。在开发这种语言时,YAML的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。这种语言以数据作为中心,而不是以标记语言为重点!以前的配置文件,大多数都是使用xml来配置;比如一个简单的端口配置,我们来对比下yaml和xml<server></server>server:prot: 8080。

weixin_44740328的博客 2894

SpringBoot-Yaml语法

文章目录SpringBoot-Yaml语法四、Yaml语法1、配置文件2、Yaml概述3、Yaml基础语法4、注入配置文件yaml注入配置文件加载指定的配置文件配置占位符结论: SpringBoot-Yaml语法 四、Yaml语法 1、配置文件 SpringBoot使用一个全局的配置文件,配置文件名称是固定的 application.properties 语法结构:key=value applicatio.yml 语法结构:key:空格 value **配置文件的作用:**修改SpringB

weixin_49512993的博客 1252

springboot详解 yaml_SpringBoot03:yaml配置解析

配置文件SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的application.properties语法结构 :key=valueapplication.yml语法结构 :key:空格 value配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;比如我们可以在配置文件中修改Tomcat 默认启动的端口号!测试一下!s...

weixin_28703489的博客 574

SpringBoot yaml配置文件

比如我的yml中写的lastName,我们类中属性为last_name,这2个还是可以绑定起来的,不影响赋值。这就是松散绑定。配置文件yml还是properties他们都能获取到值;如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

m0_74823336的博客 1620

SpringBoot—Yaml以及properties

配置

菜菜的博客 1297

重学SpringBoot3-yaml文件配置

YAML 提供了一种更为人性化的配置文件格式,它通过简洁的结构化格式,使得配置信息更加易于理解和维护。在 Spring Boot 中,通过使用 YAML,开发者可以轻松地管理和切换不同环境下的配置,优化开发流程。掌握 YAML 的基本写法和在 Spring Boot 中的应用,将有助于提高你的开发效率。

CoderJia的学习之路 3096

yaml语法格式,springboot中yaml的使用

YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(,而不是以标记语言为重点,而用反向缩略语重命名。),但为了强调这种语言。

m0_63622279的博客 1095

SpringBoot之yaml语法

SpringBoot之yaml语法 1、配置文件 官方配置文档太多了,根本记不住! 怎么办呐–>了解原理 SpringBoot使用了一个全局配置文件,且配置文件的名称是固定的: application.properties 语法结构:key=value application.yaml 语法结构:key: 空格 value 2、YAML YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。 YAML是"YAML Ain’t a Markup L

liberty的博客 762
上一篇: iOS:方向不对,努力白费,新增一份iOS市面上较完整的学习路线,为你的职业添砖加瓦
下一篇: 浅谈iOS性能优化之APP崩溃与hook方案
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值