Springboot如何配置yml文件與映射到j(luò)ava類
Springboot配置yml文件與映射到j(luò)ava類
YAML語法
1、基本語法 k:(空格)v:表示一對(duì)鍵值對(duì)(空格必須有)
以空格的縮進(jìn)來控制層級(jí)關(guān)系;只要是左對(duì)齊的一列數(shù)據(jù),都是同一個(gè)層級(jí)的
屬性和值也是大小寫敏感;
2、值的寫法 字面量:普通的值(數(shù)字,字符串,布爾)
- k: v:字面直接來寫; 字符串默認(rèn)不用加上單引號(hào)或者雙引號(hào);
- "":雙引號(hào);不會(huì)轉(zhuǎn)義字符串里面的特殊字符;特殊字符會(huì)作為本身想表示的意思
name: "zhangsan \n lisi":輸出;zhangsan 換行 lisi '':
- 單引號(hào);會(huì)轉(zhuǎn)義特殊字符,特殊字符最終只是一個(gè)普通的字符串?dāng)?shù)據(jù)
- name: ‘zhangsan \n lisi’:輸出;zhangsan \n lisi
對(duì)象、Map(屬性和值)(鍵值對(duì)):
- k: v:在下一行來寫對(duì)象的屬性和值的關(guān)系;
- 注意縮進(jìn) 對(duì)象還是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)的屬性配置 //這個(gè)組件是容器中的組件,才能提供功能加@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
測(cè)試類:
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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java讀取一行空格隔開的數(shù)字字符串并求出這些數(shù)字的和方法
今天小編就為大家分享一篇Java讀取一行空格隔開的數(shù)字字符串并求出這些數(shù)字的和方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07springboot項(xiàng)目配置多數(shù)據(jù)庫(kù)連接的示例詳解
這篇文章主要介紹了springboot項(xiàng)目配置多數(shù)據(jù)庫(kù)連接的示例,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12一學(xué)即會(huì)之JDK版本快速切換方法(2024)
這篇文章主要介紹了一學(xué)即會(huì)之JDK版本快速切換方法,詳細(xì)給大家講解了如何下載、安裝和配置多個(gè)JDK版本,并通過設(shè)置環(huán)境變量和編寫批處理腳本來切換JDK版本,需要的朋友可以參考下2025-03-03Spring Boot項(xiàng)目使用Flyway的詳細(xì)教程
這篇文章主要介紹了Spring Boot項(xiàng)目使用Flyway,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07