SpringBoot2 yaml

yaml文件

yaml是什么:

用于表示结构化数据,Spring Boot 常用它编写配置文件,扩展名为 .yml 或 .yaml。

语法规则:

  • 键值规则:使用冒号分隔键和值,普通写法中冒号后留空格;键区分大小写。如:k: v

  • 缩进规则:使用空格表示层级,禁止使用 Tab 字符缩进。同级键对齐,不要求空格数,但嵌套映射比父级缩进更深;推荐每层两个空格。

  • 注释规则:使用 # 表示注释。行尾注释需要空白分隔,引号中的 # 属于字符串内容。

  • 基本数据结构:

    • 标量:单个值,包括字符串、数字、布尔值和空值。
    • 映射:键值对的集合,可表示对象或 Map。
    • 序列:有序元素集合,可表示列表或数组。
  • 集合写法:映射支持缩进式和花括号行内式;序列支持短横线分项式和方括号行内式。

  • 类型识别:未加引号的内容可能被识别为数字、布尔值或空值;加引号可以明确表达字符串。日期的自动识别取决于解析器和 schema。

  • 引号规则:双引号处理反斜杠转义;单引号保留反斜杠。单引号字符串中的单引号本身,通过连续两个单引号表示。

  • 生效优先级按先后顺序,和properties一起生效,同时相同配置properties的优先级比yml高。

关于键值对和数组写法:

对象:键值对的集合。map、hash、set、object。

行内写法:

k: {k1: v1, k2: v2, k3: v3}

或:

k: 
  k1: v1 
  k2: v2 
  k3: v3

数组:一组按次序排列的值。array、list、queue。

行内写法:

k: [v1, v2, v3]

或:

k: 
  - v1 
  - v2 
  - v3

例:

类原型:

import lombok.Data;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

@ConfigurationProperties(prefix = "person")
@Component
@ToString
@Data
public class Person {
    private String userName;
    private Boolean boss;
    private Date birth;
    private Integer age;
    private Pet pet;
    private String[] interests;
    private List<String> animal;
    private Map<String, Object> score;
    private Set<Double> salarys;
    private Map<String, List<Pet>> allPets;
}

yml文件:

person:
  userName: zhangsan
  boss: true
  birth: 2019/12/9
  age: 18

  # interests: [篮球, 足球]
  interests:
    - 篮球
    - 足球
    - 18

  animal: [阿猫, 阿狗]

  # score:
  #   english: 80
  #   math: 90
  score: {english: 80, math: 90}

  salarys:
    - 9999.98
    - 9999.99

  pet:
    name: 阿狗
    weight: 99.99

  allPets:
    sick:
      - {name: 阿狗, weight: 99.99}
      - name: 阿猫
        weight: 88.88
      - name: 阿虫
        weight: 77.77
    health:
      - {name: 阿花, weight: 199.99}
      - {name: 阿明, weight: 199.99}

配置处理器:

这个可以方便开发,spring-boot-configuration-processor 在编译阶段分析配置属性定义,生成配置元数据,帮助 IDE 提供配置项补全和说明。就是像编写SpringBoot原生类那样给提示。

引入依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

下面的东西可以在打jar包时移除配置处理器相关类,毕竟实际业务代码用不上这些

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>

            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-configuration-processor</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇