springBoot复杂对象表示和lombok的使用

springBoot复杂对象表示

前言

对象:键值对的集合,如:映射(map)/哈希(hash)/字典(dictionary)

数组:一组按次序排列的值,如:序列(sequence)/列表(list)

纯量:单个的,不可再分的值,如:字符串、数字、bool、日期

lombok:在编译期间自动生成get和set方法

简单案例

创建类,让类中嵌套别的对象,并通过注解绑定变量

person文件

java 复制代码
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文件

java 复制代码
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中添加

java 复制代码
		<!-- 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文件进行绑定

java 复制代码
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文件中使用

java 复制代码
#---:区分
#可以将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: "小黑"}
相关推荐
Java成神之路-15 分钟前
Java String 为什么不可变?和 HashMap 到底有什么关系?
java
paopaokaka_luck18 分钟前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts
文丑颜不良啊29 分钟前
LeetCode1401~1420题目解析
java·leetcode
Nuanyt30 分钟前
LeetCode Hot 100 链表专题2 3 题 (Java)
java·笔记·算法·leetcode·链表
文丑颜不良啊38 分钟前
LeetCode1341~1360题目解析
java·leetcode
系统集成-鹰翔1 小时前
ERP推单数据库怎么备份:SQLite WAL模式下只复制db文件为什么可能漏任务
javascript·数据库·经验分享·后端
QianhangQianping1 小时前
撤销重做不是「存快照」:一个可视化编辑器的Operation 设计
java·前端·数据库·typescript·编辑器·前端架构·撤销重做
海绵宝宝转agent1 小时前
LeetCodehot100题解
java·笔记·学习·算法·leetcode·深度优先
SunnyDays10111 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java·word
SunnyDays10111 小时前
Java 为 Word 添加页码:隐藏封面页码、从指定页开始编号、奇偶页页码设置等
java·word·页码