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>

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM