SpringBoot3中ymal配置文件(持续更新)
在SpringBoot项目中,使用application.properties进行配置管理时,随着配置项增多,文件会变的难以阅读和修改,层次结构不直观,这样会影响配置项的维护
YAML
YAML,全称"YAML Ain't a Markup Language"(YAML不是一种标记语言),其初始含义为"Yet Another Markup Language"(另一种标记语言)。其设计初衷如下:
- 语法简洁,便于理解和编辑。
- 通过缩进明确展示配置项的层级关系,非常适合作为配置文件。
- 通常使用
.yaml
或.yml
作为文件后缀。
基本语法:
- 键名区分大小写
- 通过缩进表示层级,格式为键值对,键与值之间使用空格分隔
支持的数据结构:
- 键值对的集合,如映射(map)、哈希(hash)、字典(dictionary)。
- 有序排列的值集合,如序列(sequence)、列表(list)。
- 单一、不可再分的值,如字符串、数字、布尔值、日期。
Java类代码定义:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Component
@ConfigurationProperties(prefix = "user")
@Data
public class UserProperties {
private String username;
private Integer age;
private Date birthdate;
private Boolean isActive;
private Address address;
private List<Pet> pets;
private Map<String, Hobby> hobbies;
}
@Data
public class Pet {
private String name;
private String type;
}
@Data
public class Address {
private String street;
private String city;
private String zipcode;
}
@Data
public class Hobby {
private String name;
private Integer years;
}
application.properties配置:
user.username=john_doe
user.age=30
user.birthdate=1990-01-01T00:00:00
user.isActive=true
user.address.street=123 Main St
user.address.city=Springfield
user.address.zipcode=12345
user.pets[0].name=Buddy
user.pets[0].type=Dog
user.pets[1].name=Whiskers
user.pets[1].type=Cat
user.hobbies.hobby1.name=Reading
user.hobbies.hobby1.years=5
user.hobbies.hobby2.name=Hiking
user.hobbies.hobby2.years=2
YAML配置(application.yaml):
user:
username: john_doe
age: 30
birthdate: 1990/01/01 00:00:00
isActive: true
address:
street: 123 Main St
city: Springfield
zipcode: 12345
pets:
- name: Buddy
type: Dog
- name: Whiskers
type: Cat
hobbies:
hobby1:
name: Reading
years: 5
hobby2:
name: Hiking
years: 2
原文地址:https://blog.csdn.net/Rangsh/article/details/142483837
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!