一、基本工具包使用
统一使用spring 包
StringUtils hasText(包括判断null,空,字符串为空)
ObjectUtils
BeanUtils
CollectionUtils—集合校验包
lang3----
ArrayUtils
java.util--------------
Arrays—数组工具包
Collections----集合工具包
JSON转换
//解决返回丢失精度问题
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long createdBy;
//格式化时间
//入参
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private date createAt;
//出参
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
//json转换
String jsonString = JSON.toJSONString(photos);
二、mapstruct
mapstruct:是一个对象之间转换的一个工具,如VO、PO、FORM直接的转换。
通过自定义接口,来让工具进行实现自定义转换,转换映射也是通过字段名称来进行匹配的。
1、基本导入使用
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.0.Final</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.0.Final</version>
</dependency>
<!-- plugins -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
2、代码实践使用
1、生成convert接口,Mapper导包 为mapstrcut
@Mapper(componentModel ="spring")
public interface FarmConvert {
FarmConvert INSTANCE = Mappers.getMapper(FarmConvert.class);
//PO转换VO
FarmVO convert(FarmPO farmPO);
}
2、实践调用
FarmVO convert = FarmConvert.INSTANCE.convert(farmPO);
3、额外信息扩展
@Mapping(target = "imagesUrl",ignore = true) //设置某字段不映射
@Mapping(target = "userNick1", source = "userNick")//指定映射某个字段
ActivityPO convert(ActivityVO vo);
Lombok
lombok: 常用于 实体类,使用注解的方式来生成,使用方式比较简单,直接在实体类上面加注释就可以。
@Getter/@Setter
生成get set方法
@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor
生成无参构造器、有参构造器、指定参数构造器
@Data
包含了一下几个
- @Getter/@Setter
- @ToString
- @EqualsAndHashCode
- @RequiredArgsConstructor
@Builder
使其类构建成(建造者模式),形成流式写法
例如:FarmPO farmPO2 = FarmPO.builder().id(1L).farmName(“1”).build();