1.关于POJO类型的编写规范
在项目中,以定义属性为主,基本上不关心方法的类,都可以称之为POJO类,例如实体类、DTO类等。
所有的POJO类都应该:
- 【必须】所有属性应该是私有的(访问权限为
private
) - 【必须】存在无参数构造方法
- 【必须】所有属性都有规范名称的Setter & Getter
- 【必须】类中存在规范的
equals()
和hashCode()
- 如果2个对象,类型相同,所有属性值都相同,则
equals()
对比结果应该是true
,且hashCode()
返回值应该相同 - 如果2个对象,类型不同,或类型相同但有任何属性值不同,则
equals()
对比结果应该是false
,且hashCode()
返回值应该不同 - 通常,使用开发工具自动生成的
equals()
和hashCode()
都是规范的
- 如果2个对象,类型相同,所有属性值都相同,则
- 【必须】类实现了
Serializable
接口 - 【建议】类中存在基于所有属性的
toString()
比喻:
package cn.tedu.csmall.product.pojo.entity;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 相册数据的实体类
*
* @author java@tedu.cn
* @version 0.0.1
*/
@Data
public class Album implements Serializable {
/**
* 数据id
*/
private Long id;
/**
* 相册名称
*/
private String name;
/**
* 相册简介
*/
private String description;
/**
* 排序序号
*/
private Integer sort;
/**
* 数据创建时间
*/
private LocalDateTime gmtCreate;
/**
* 数据最后修改时间
*/
private LocalDateTime gmtModified;
}
2.Lombock
Lombok框架可以通过特定的注解,在编译期生成Setter、Getter、equals()
、hashCode()
、toString()
、无参数构造方法、全参数构造方法等。
<!-- Lombok的依赖项,主要用于简化POJO类的编写 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
关于使用Lombok时的相关常用注解:
@Data
:添加在类上,可以在编译期生成全部参数对应的Setter、Getter、equals()
、hashCode()
、toString()
、无参数构造方法- 使用此注解时,要求当前类的父类必须存在无参数构造方法
@Setter
:添加在类中的属性上,可以生成此属性对应的Setter方法,或添加在类上,可以生成此类中所有属性对应的Setter方法@Getter
:用法与作用可参考@Setter
注解,此注解的作用是生成Getter方法@EqualsAndHashCode
:添加在类上,可以生成基于此类中所有属性的equals()
和hashCode()
方法@ToString
:添加在类上,可以生成基于此类中所有属性的toString
方法@NoArgsConstructor
:添加在类上,可以生成无参数的构造方法@AllArgsConstructor
:添加在类上,可以生成全参数的构造方法@Slf4j
:日志
trace
:跟踪信息debug
:调试信息info
:一般信息warn
:警告信息error
:错误信息- 记得在yml的配置文件中配置:
logging: level: cn.tedu.csmall: trace
我是小白:我后续还会继续更新笔记.......!