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

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




我們可以導(dǎo)入配置文件處理器,以后編寫配置就有提示了
<!--配置 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將本類中的所有屬性與配置文件中相關(guān)的屬性配置
//這個組件是容器中的組件,才能提供功能加@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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java讀取一行空格隔開的數(shù)字字符串并求出這些數(shù)字的和方法
今天小編就為大家分享一篇Java讀取一行空格隔開的數(shù)字字符串并求出這些數(shù)字的和方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
springboot項目配置多數(shù)據(jù)庫連接的示例詳解
這篇文章主要介紹了springboot項目配置多數(shù)據(jù)庫連接的示例,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-12-12
Spring Boot項目使用Flyway的詳細(xì)教程
這篇文章主要介紹了Spring Boot項目使用Flyway,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07

