首页 > 其他分享 >springboot开发日记(9)——YAML配置文件

springboot开发日记(9)——YAML配置文件

时间:2023-02-09 16:56:05浏览次数:38  
标签:weight name 配置文件 person private YAML yaml zhangsan springboot

YAML——适合用来做以数据为中心的配置文件

基本语法

  • 使用缩进表示层级关系。
  • 缩进时不允许使用 Tab 键,只允许使用空格。(实际使用idea开发中,Tab也有效)
  • 缩进的空格数不重要,但同级元素必须左侧对齐。
  • 大小写敏感。
  • “#”表示注释

基础回顾:java中的数据类型

  • 字面量:单个的、不可再分的值。date、boolean、string、number、null
  • 对象:键值对的集合,如map、hash、set、object
  • 数组:一组按次序排列的值:array、list、queue

在 YAML 中,使用“key:[空格]value的形式表示一对键值对(空格不能省略)

对不同的数据类型,表示方法也不一样

字面量:k: v

对象

行内写法:  k: {k1:v1,k2:v2,k3:v3}
#或
k: 
  k1: v1
  k2: v2
  k3: v3

数组

行内写法:  k: [v1,v2,v3]
#或者
k:
 - v1
 - v2
 - v3

示例

建立Person类

@ConfigurationProperties(prefix = "person")
@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;
}

Pet类

@Data
public class Pet {
    private String name;
    private Double weight;
}

同时在Resources下建立application.yaml文件

person:
  userName: zhangsan
  boss: true
  birth: 2017/01/01
  age: 30
  interests:
    - 篮球
    - 足球
  animal: [cat,dog]
  score:
    english: 80
    math: 90
  salarys:
    - 9999.98
    - 9999.99
  pet:
    name: xxx
    weight: 100
  allPets:
    sick:
      - {name: aaa,weight: 999.9}
      - name: bbb
        weight: 100.9
      - name: ccc
        weight: 200.9
    health:
      - name: ddd
        weight: 300

在HelloController.java中添加以下代码

@Autowired
    Person person;
@RequestMapping("/person")
public Person person(){
    return person;
}

其中@Autowired从容器中拿出person实例。

在MainApplication.java中运行SpringApplication.run(MainApplication.class,args);

发现输出了yaml文件中定义的各个属性。

我们可以看到,使用yaml文件可以使属性配置层级清晰,更有条理,并且在后续如果需要配置第三方包的属性时不需要重复冗长的前缀。


字符串里单双引号的区别

在yaml文件中单双引号有不同的作用:

单引号会转义,双引号不会转义(相对于转义字符)

看上去有点绕弯,实际上就是在双引号中的转义字符会正常发挥作用,例如

person:
  userName: "zhangsan /n lisi"

系统最后输出的结果是

zhangsan
lisi

而单引号则不同

person:
  userName: 'zhangsan /n lisi'

系统最后输出的结果是

zhangsan /n lisi

 经过测试,不加引号的结果与加单引号相同

标签:weight,name,配置文件,person,private,YAML,yaml,zhangsan,springboot
From: https://www.cnblogs.com/tarorat/p/17105165.html

相关文章

  • 010_读取 yaml 全部属性数据
         ①使用Environment对象封装全部配置信息 ②使用@Autowired自动装配数据到Environment对象中 ......
  • SpringBoot 项目实战 | 瑞吉外卖 Day02
    该系列将记录一份完整的实战项目的完成过程,该篇属于第二天案例来自B站黑马程序员Java项目实战《瑞吉外卖》,请结合课程资料阅读以下内容该篇我们将完成以下内容:完善登陆......
  • SpringBoot 项目实战 | 瑞吉外卖 Day03
    该系列将记录一份完整的实战项目的完成过程,该篇属于第三天案例来自B站黑马程序员Java项目实战《瑞吉外卖》,请结合课程资料阅读以下内容该篇我们将完成以下内容:公共字段......
  • SpringBoot自动配置原理
    传统的Spring项目,需要我们对每个引入的组件进行手动配置。这需要开发者对组件有深入的了解,否则很容易遗漏某些细节。对于业务开发人员/公司来说,他们只需要知道如何使用组......
  • springboot开发日记(8)——插件
    1.lombok——简化JavaBean的开发普通的bean类需要写getter、setter、重写toString方法,较为麻烦。我们可以通过查找springboot的dependencies得知springboot的依赖里已经......
  • Python之ruamel.yaml模块详解(一)
    (Python之ruamel.yaml模块详解(一))1ruamel.yaml简介ruamel.yaml是一个yaml解析器;ruamel.yaml是一个用于Python的yaml1.2加载器/转储程序包;它是PyYAML3.11的衍生产品;r......
  • mybaits配置文件中添加显示sql语句的配置
    <!--Mybatis全局配置--><settings><!--设置当前Mybatis的日志输出,可在控制台显示sql语句--><settingname="logImpl"value="STDOUT_LOGGING"/......
  • 一篇文章带了解如何用SpringBoot在RequestBody中优雅的使用枚举参数
    目录确认需求定义枚举和对象实现转换逻辑方案一:精准攻击方案二:全范围攻击测试总结 确认需求需求与前文类似,只不过这里需要是在RequestBody中使用。与前文......
  • SpringBoot/SpringCloudAlibaba(ruoyi)中cron表达式(配置每天指定整点执行)读取配置文
    场景若依微服务版手把手教你本地搭建环境并运行前后端项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303在上面的基础上某业务需要配置cron表......
  • 【SpringBoot】条件装配 @profile
    profile使用说明:@profile注解的作用是指定类或方法在特定的Profile环境生效,任何@Component或@Configuration注解的类都可以使用@Profile注解。在使用DI来依赖注入的......