随笔 - 35  文章 - 0  评论 - 0  阅读 - 9037

yaml/yml用法 获取参数用法

基本语法:

key: value;kv之间有空格

大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
'#‘表示注释
字符串无需加引号,如果要加,’ '(单引号)与" "(双引号)表示字符串内容 会被 转义/不转义

普通引用

key : value

对象:键值对的集合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

参数引用

personZS:
  name: ahangsan
  age: 20

animal:
  person: ${personZS}

获取方式

  1@Value

    在被注入的参数上写@Value("${key值}")

@Value("${name}")
private String name1;

    数组形式

@Value("${arraylist[0]}")
private String arraylist;

  2environment

    注入一个environment的类(springboot自带的)

    然后用方法获取

System.out.println(env.getProperty("name"));
System.out.println(env.getProperty("arraylist[0]"));

  3@ConfigurationProperties 类从yml中直接获取

复制代码
package com.xzh.boot12.bean;

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;

/**
 * @Author XuZhuHong
 * @CreateTime 2021/6/7 18:40
 */
//下面的代码由Lombok提供
//@Data  自动生成get,set方法
@Data
//@ToString  自动生成tostring注解
@ToString
//@AllArgsConstructor  自动生成构造方法(全部参)
@AllArgsConstructor
//@NoArgsConstructor  自动生成无参构造方法
@NoArgsConstructor
//@EqualsAndHashCode  重写HashCode方法
@EqualsAndHashCode
//@ConfigurationProperties绑定配置文件key为person的数据   
//用这个注解过后里面的数据有变量名和配置key相等时会自动注入
@ConfigurationProperties(prefix = "person")
@Component//放到容器中的注解
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;
}

/**
注意想要使用上面关于lombok的注解必须要在pom.xml中导入以下代码:
<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
</dependency>
*/
复制代码
复制代码
# yaml表示以上对象
person:
  userName: zhangsan
  boss: false
  birth: 2019/12/12 20:12:33
  age: 18
  pet:
    name: tomcat
    weight: 23.4
  interests: [ 篮球,游泳 ]
  animal:
    - jerry
    - mario
  score:
    english:
      first: 30
      second: 40
      third: 50
    math: [ 131,140,148 ]
    chinese: { first: 128,second: 136 }
  salarys: [ 3999,4999.98,5999.99 ]
  allPets:
    sick:
      - { name: tom }
      - { name: jerry,weight: 47 }
    health: [ { name: mario,weight: 47 } ]
复制代码

yaml提示器

复制代码
  <!--yaml编写提示-->
 <!--配置处理器 就是解决在配置文件中没有提示的问题-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>



 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--这句话的意思是 让这个打包插件 不要把yaml的代码提示放进去-->
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-configuration-processor</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
复制代码

 

    

posted on   ziwang520  阅读(1632)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示