SpringBoot 優雅的讀取yml文件

前言

在springboot 項目中一般默認的配置文件是application.properties,但是實際項目中我們一般會使用application.yml 文件,下面就介紹一下在springboot 中讀取 yml 配置的幾種方式.

一 規則

可以使用 "-小寫字母" 或 "_小寫字母"來 代替 "大寫字母",如 userName 與 user-name ,user_name 含義是一樣的
key: value 格式書寫
key 後面跟着冒號,再後面跟着一個空格,然後是值

注意:

字符串默認不用加上單引號或者雙引號;
"":雙引號;不會轉義字符串裏面的特殊字符;特殊字符會作爲本身想表示的意思
name: "zhangsan \n lisi":輸出;zhangsan 換行 lisi
'':單引號;會轉義特殊字符,特殊字符最終只是一個普通的字符串數據
name: ‘zhangsan \n lisi’:輸出;zhangsan \n lisi

二 yml配置文件

#普通的值(數字,字符串,布爾)
user_name: zhangsan
student:
  user_name: lisi
  #對象、Map (屬性和值) (鍵值對)
  address:
     address1: 河北
     address1: 北京
  #數組
  ages:
     -8
     -9
     -10

三 @value讀取

 @Value("${student_name}")
 private String studentName;

四 @ConfigurationProperties讀取

配置文件匹配的類

@Data
@Component
@ConfigurationProperties(prefix = "student")
public class StudentConfig {
    private String user_name;
    private Map address;
    private String[] ages;
}

讀取

@Autowired
StudentConfig studentConfig;

@RequestMapping(value="/user/login")
public Map assetsSummary() throws InterruptedException {
    System.out.println(studentConfig.getUser_name());
    System.out.println(studentConfig.getAddress());
    System.out.println(studentConfig.getAges()[0]);
   return map;
}

四 @Environment讀取

@Autowired
private Environment env;

@Autowired
StudentConfig studentConfig;

@RequestMapping(value="/user/login")
public Map assetsSummary() throws InterruptedException {
    System.out.println(studentConfig.getUser_name());
    System.out.println(studentConfig.getAddress());
    System.out.println(studentConfig.getAges()[0]);
    //Environment 讀取
    System.out.println(env.getProperty("user_name"));
   return map;
}

打印結果如下

 

發佈了240 篇原創文章 · 獲贊 370 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章