当前位置:   article > 正文

Spring boot YML配置_springboot yml配置

springboot yml配置

1.YML配置

1.1.简介

1.1.1YML是什么

YAML (YAML Ain’t a Markup Language)YAML不是一种标记语言,通常以.yml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,一种专门用来写配置文件的语言。

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

​ 例如:

student:
    name: sangeng
    age: 15
  • 1
  • 2
  • 3
<student>
    <name>sangeng</name>
    <age>15</age>
</student>
  • 1
  • 2
  • 3
  • 4
1.1.2YML优点
  1. YAML易于人们阅读。

  2. 更加简洁明了

1.2.语法

1.2.1约定
  • k: v 表示键值对关系,冒号后面必须有一个空格

  • 使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都是同一个层级的

  • 大小写敏感

  • 缩进时不允许使用Tab键,只允许使用空格

  • java中对于驼峰命名法,可用原名或使用-代替驼峰,如java中的lastName属性,在yml中使用lastName或 last-name都可正确映射。

  • yml中注释前面要加#

1.2.2键值关系
普通值(字面量)

k: v:字面量直接写;

字符串默认不用加上单引号或者双绰号;

“”: 双引号;转意字符能够起作用

​ name: “sangeng \n caotang”:输出;sangeng 换行 caotang

‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name1: sangeng 
name2: 'sangeng  \n caotang'
name3: "sangeng  \n caotang"
age: 15
flag: true
  • 1
  • 2
  • 3
  • 4
  • 5
日期
date: 2019/01/01
  • 1
对象(属性和值)、Map(键值对)

多行写法:

在下一行来写对象的属性和值的关系,注意缩进

student:
  name: zhangsan
  age: 20
  • 1
  • 2
  • 3

行内写法:

student: {name: zhangsan,age: 20}
  • 1
数组、list、set

用- 值表示数组中的一个元素

多行写法:

pets:
  - dog
  - pig
  - cat
  • 1
  • 2
  • 3
  • 4

行内写法:

pets: [dog,pig,cat]
  • 1
对象数组、对象list、对象set
students:
 - name: zhangsan
   age: 22
 - name: lisi
   age: 20
 - {name: wangwu,age: 18}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
1.2.3 占位符赋值

可以使用 ${key:defaultValue} 的方式来赋值,若key不存在,则会使用defaultValue来赋值。

例如

server:
  port: ${myPort:88}

myPort: 80   
  • 1
  • 2
  • 3
  • 4

1.3.SpringBoot读取YML

1.3.1 @Value注解

​ 注意使用此注解只能获取简单类型的值(8种基本数据类型及其包装类,String,Date)

student:
  lastName: sangeng
  • 1
  • 2
@RestController
public class TestController {
    @Value("${student.lastName}")
    private String lastName;
    @RequestMapping("/test")
    public String test(){
        System.out.println(lastName);
        return "hi";
    }
    
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

注意:加了@Value的类必须是交由Spring容器管理的

1.3.2 @ConfigurationProperties

​ yml配置

student:
  lastName: sangeng
  age: 17
student2:
  lastName: sangeng2
  age: 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

​ 在类上添加注解@Component 和@ConfigurationProperties(prefix = “配置前缀”)

@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    private String lastName;
    private Integer age;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

​ 从spring容器中获取Student对象

@RestController
public class TestController {

    @Autowired
    private Student student;
    @RequestMapping("/test")
    public String test(){
        System.out.println(student);
        return "hi";
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

注意事项:要求对应的属性要有set/get方法,并且key要和成员变量名一致才可以对应的上。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/90580
推荐阅读
相关标签
  

闽ICP备14008679号