springBoot复杂对象表示
- 前言
- 简单案例
- lombok的使用
- 通过properties文件进行绑定
- 在yaml文件中使用
前言
对象:键值对的集合,如:映射(map)/哈希(hash)/字典(dictionary)
数组:一组按次序排列的值,如:序列(sequence)/列表(list)
纯量:单个的,不可再分的值,如:字符串、数字、bool、日期
lombok:在编译期间自动生成get和set方法
简单案例
创建类,让类中嵌套别的对象,并通过注解绑定变量
person文件
package com.atguigu.boot.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author jitwxs
* @date 2023年10月17日 12:31
*/
@Component //将类添加到容器中
@ConfigurationProperties(prefix = "person") //和配置文件中的person进行绑定
public class Person {
private String name;
private Integer age;
private Date birthDay;
private Boolean like;
private Child child; //嵌套对象
private List<Dog> dogs; //数组(里面有对象)
private Map<String,Cat> cats; //表示Map
}
child文件
package com.atguigu.boot.bean;
import java.util.Date;
import java.util.List;
/**
* @author jitwxs
* @date 2023年10月17日 15:28
*/
public class Child {
private String name;
private Integer age;
private Date birthDay;
private List<String> text; //数组
}
lombok的使用
在pom中添加
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
在类中引用
通过properties文件进行绑定
pig.id=1
pig.name=小红
pig.age=5
#properties表示负责对象
person.name="张三"
person.age=23
person.birthDay=2023/10/17 16:19
person.like=true
person.Child.name="李四"
person.Child.age=25
person.Child.birthDay=2023/10/17 16:21
person.Child.text[0]=盼盼大熊猫
person.Child.text[1]=真可爱
person.dogs[0].name=专家
person.dogs[1].name=小黄
person.cats.c1.name=小红
person.cats.c2.name=小兰
输出结果
在yaml文件中使用
#---:区分
#可以将birthDay写成birth-day
#\n换行符 |表示大文本,保留格式 >表示大文本,会压缩换行变成空格 多文档合并:使用---可以把多个yaml文档合并在一个文档中,美国个文档区依然仍未内容独立
---
person:
name: 张三
age: 23
birthDay : 2023/10/17 16:19
like: true
Child:
name: "李四"
age: 25
birthDay: 2023/10/17 16:21
text: ["盼盼大熊猫","真可爱"]
dogs:
- name: 专家
- name: 小黄
cats:
c1:
name: 小红
c2:
name: 小兰
c3: {name: "小黑"}