Springboot如何配置yml文件與映射到java類
Springboot配置yml文件與映射到java類
YAML語法
1、基本語法 k:(空格)v:表示一對鍵值對(空格必須有)
以空格的縮進來控制層級關系;只要是左對齊的一列數(shù)據(jù),都是同一個層級的

屬性和值也是大小寫敏感;
2、值的寫法 字面量:普通的值(數(shù)字,字符串,布爾)
- k: v:字面直接來寫; 字符串默認不用加上單引號或者雙引號;
- "":雙引號;不會轉(zhuǎn)義字符串里面的特殊字符;特殊字符會作為本身想表示的意思
name: "zhangsan \n lisi":輸出;zhangsan 換行 lisi '':
- 單引號;會轉(zhuǎn)義特殊字符,特殊字符最終只是一個普通的字符串數(shù)據(jù)
- name: ‘zhangsan \n lisi’:輸出;zhangsan \n lisi
對象、Map(屬性和值)(鍵值對):
- k: v:在下一行來寫對象的屬性和值的關系;
- 注意縮進 對象還是k: v的方式




我們可以導入配置文件處理器,以后編寫配置就有提示了
<!--配置 yml文件處理器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>完整代碼
Dog類
public class Dog {
String name;
int age;
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}person 類
Person 類
//將配置文件中的值映射到person中
//@ConfigurationProperties 告訴springboot將本類中的所有屬性與配置文件中相關的屬性配置
//這個組件是容器中的組件,才能提供功能加@Component注解
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
String name;
int age;
Date birth;
Map<String,Object> map;
Dog dog;
List list;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", birth=" + birth +
", map=" + map +
", dog=" + dog +
", list=" + list +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
}
yml文件中的配置:
person:
name: sunchao
age: 12
birth: 2022/12/12
map: {k1: v1,k2: v2}
list: [lisi,zhangsan]
dog:
name: xiaogou
age: 2測試類:
package com.sunchao.demo;
import com.sunchao.demo.bean.Person;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
class DemoApplicationTests {
@Autowired
Person person;
@Test
void contextLoads() {
System.out.println(person);
}
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
基于Java字符串 "==" 與 "equals" 的深入理解
本篇文章是對Java中的字符串"=="與"equals"進行了詳細的分析介紹,需要的朋友參考下2013-06-06
詳解springboot + profile(不同環(huán)境讀取不同配置)
本篇文章主要介紹了springboot + profile(不同環(huán)境讀取不同配置),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05
java 實現(xiàn)發(fā)短信功能---騰訊云短信
如今發(fā)短信功能已經(jīng)成為互聯(lián)網(wǎng)公司的標配,接下來通過本文給大家介紹java 實現(xiàn)發(fā)短信功能---騰訊云短信 ,需要的朋友可以參考下2019-08-08
springboot starter介紹與自定義starter示例詳解
Spring Boot 的 Starter 是一組比較方便的依賴描述符,可以通過 Maven 將其打成jar包,并在你的項目中直接引用,這篇文章主要介紹了springboot starter介紹與自定義starter示例,需要的朋友可以參考下2025-05-05
解決mybatis-plus使用jdk8的LocalDateTime 查詢時報錯的方法
這篇文章主要介紹了解決mybatis-plus使用jdk8的LocalDateTime 查詢時報錯的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
Java中的ScheduledThreadPoolExecutor定時任務詳解
這篇文章主要介紹了Java中的ScheduledThreadPoolExecutor詳解,??ScheduledThreadPoolExecutor?繼承自?ThreadPoolExecutor,它主要用來在給定的延遲之后運行任務,或者定期執(zhí)行任務,ScheduledThreadPoolExecutor?的功能與?Timer?類似<BR>,需要的朋友可以參考下2023-12-12

