yml语法学习 SpringBoot配置文件自动装配 yml文件有提示读取配置文件

yaml学习

yaml语言的文件后缀名为.yml,和 json 一样是配置文件。

编码规则

  1. 大小写敏感
  2. 使用缩进表示层级关系
  3. 禁止使用tab缩进,只能使用空格键
  4. 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
  5. 使用#表示注释
  6. 字符串可以不用引号标注
  7. 双引号"":不会转义字符串里面的特殊字符,特殊字符作为本身想表示的意思。
  8. 单引号’':会将字符串里面的特殊字符转义为字符串处理
  9. |:使用|标注的文本内容缩进表示的块,可以保留块中已有的回车换行
  10. +表示保留文字块末尾的换行,-表示删除字符串末尾的换行。
  11. >:使用 > 标注的文本内容缩进表示的块,将块中回车替换为空格,最终连接成一行。
  12. 使用 & 定义数据锚点(即要复制的数据),使用 * 引用锚点数据(即数据的复制目的地)
  13. 使用 iso-8601 标准表示日期date: 2018-01-01t16:59:43.10-05:00

数据结构

配置文件十分简洁,与 json 相比,不用频繁的写 {}[],毕竟换行-符号更加简洁,字符串也不需要频繁的加引号(无论是单引号还是双引号)。

对象

#application.yml
animal: dogs
homeAddress:
    province: 安徽省
    city: 阜阳市
    county: 利辛县
    detail: 东南路1000000000号

转换为 json 为:

{
  "animal": "dogs",
  "homeAddress": {
    "province": "安徽省",
    "city": "阜阳市",
    "county": "利辛县",
    "detail": "东南路1000000000号"
  }
}

数组

#application.yml
animals:
    - dogs
    - cats
    - pigs
    - ducks

转换为 json 为:

{
  "animals": [
    "dogs",
    "cats",
    "pigs",
    "ducks"
  ]
}

字符串

#application.yml
# 正常情况下字符串不用写引号
spring:
  datasource:
    username: root
    password: root

# 字符串内有空格或者特殊字符时需要加引号
spring:
  datasource:
    url: "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false"

null

#application.yml

#.yml 中 ~ 表示 null
data: ~

转换为 json 为:

{
  "data": null
}

SpringBoot配置yaml

我们学习了yaml的语法规则,希望在spring boot项目中能够提示读取配置文件。

引入依赖

<!--SpringBoot的application配置组件-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

添加注解

WxConfig.java

package com.example.demo.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @author zby
 * @datetime 2022/7/27 17:23
 * @desc 配置微信配置信息
 */
@ConfigurationProperties(prefix = "wx")
@Data
public class WxConfig {
    private String appId;
    private String appKey;
    private String secret;
}

DemoApplication .java

编写WxConfig .java之后,需要在启动程序【DemoApplication .java】中引入该类,否则编辑器会报出错误。

package com.example.demo;

import com.example.demo.demo.config.WxConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

@SpringBootApplication
@EnableConfigurationProperties(WxConfig.class)
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

配置文件已有提示

在这里插入图片描述

使用配置

package com.example.demo.demo;

import com.example.demo.demo.config.WxConfig;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class DemoApplicationTests {

  @Autowired private WxConfig wxConfig;

  @Test
  void contextLoads() {
    System.out.println(wxConfig);
  }
}

输出结果

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网全栈开发实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值