当前位置: 首页 > news >正文

office2017做网站怎样查询百度收录和排名情况

office2017做网站,怎样查询百度收录和排名情况,如何建设网站和app,成都网站建设市场分析MapStruct从0到0.5 开发的过程,经常会用到实体类属性映射,同时为了方便,开发者也很少自己写专门的属性赋值工具类。索性会直接使用Sprrng提供的BeanUtils工具类,然后在性能上和字段属性赋值上的问题,一直是为开发者所…

MapStruct从0到0.5

开发的过程,经常会用到实体类属性映射,同时为了方便,开发者也很少自己写专门的属性赋值工具类。索性会直接使用Sprrng提供的BeanUtils工具类,然后在性能上和字段属性赋值上的问题,一直是为开发者所诟病的,下面直接上案例。

1、引入依赖

注意lombok引入一定要在mapstruct依赖的前面。否则会出现无法找到Setter和Getter方法的异常出现。

<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!-- mapstruct --><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-jdk8</artifactId><version>1.5.3.Final</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>1.5.3.Final</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>1.5.3.Final</version></dependency>
</dependencies>

2、编写案例

引入依赖后,则进行日常较为常用的案例测试,首先附上基础代码:
User.java

@Data
public class User {private Long id;/*** 情况一:时间字符串转时间对象*/private String birthDay;/*** 时间字符串转时间对象*/private Date happenDay;/*** 情况二:使用工具类指定方法进行处理字段*/private String ids;/*** 情况三:忽略字段*/private String ignore;/*** 情况四:字段对应*/private String label;
}

UserVo.java

@Data
public class UserVo {private Long id;/*** 情况一:时间字符串转时间对象*/private Date birthDay;/*** 时间对象转时间字符串*/private String happenDay;/*** 情况二:使用工具类指定方法进行处理字段*/private List<String> ids;/*** 情况三:忽略字段*/private String ignore;/*** 情况四:字段对应*/private String value;
}

**注意:**这里的Mapper注解在mapstruct包下,别与myBatis中的注解混淆。

UserMapper.java

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;@Mapper
public interface UserMapper {UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);@Mapping(target = "birthDay", dateFormat = "yyyy-MM-dd")@Mapping(target = "happenDay", dateFormat = "yyyy-MM-dd")@Mapping(source = "label", target = "value")@Mapping(target = "ignore", ignore = true)@Mapping(target = "ids", expression = "java(ConverterUtil.strToList(user.getIds()))")UserVo UserToUserVo(User user);
}

ConverterUtil.java

public class ConverterUtil {public static List<String> strToList(String str){return Arrays.asList(str.split(","));}
}

MapStructTest.java

public class MapStructTest {public static void main(String[] args) {// 1、创造属性User user = new User();user.setId(1L);user.setBirthDay("2023-08-29");user.setHappenDay(new Date());user.setIds("11,22,33");user.setIgnore("这是一个忽略字段");user.setLabel("将label映射到value上");// 2、测试效果UserVo userVo = UserMapper.INSTANCE.UserToUserVo(user);System.out.println(userVo);}
}

下面打印显示结果:

UserVo(id=1, birthDay=Tue Aug 29 00:00:00 CST 2023, happenDay=2023-09-09, 
ids=[11, 22, 33], ignore=null, value=将label映射到value上)Process finished with exit code 0

3、详细说明

1、@Mapping和@Mappings
@Mapping(target = "birthDay", dateFormat = "yyyy-MM-dd")
@Mapping(target = "happenDay", dateFormat = "yyyy-MM-dd")
@Mapping(source = "label", target = "value")
@Mapping(target = "ignore", ignore = true)
@Mapping(target = "ids", expression = "java(ConverterUtil.strToList(user.getIds()))")
UserVo UserToUserVo(User user);

上文中多个Mapping也可以替换为Mapings写法

@Mappings({@Mapping(target = "birthDay", dateFormat = "yyyy-MM-dd"),@Mapping(target = "happenDay", dateFormat = "yyyy-MM-dd"),@Mapping(source = "label", target = "value"),@Mapping(target = "ignore", ignore = true),@Mapping(target = "ids", expression ="java(ConverterUtil.strToList(user.getIds()))")})
UserVo UserToUserVo(User user);
2、dateFormat 时间类型(Date.class)和字符串的相互转换

无论是时间字符串转时间对象,还是时间对象转时间字符串都需要补充转换的时间格式

// birthDay有 string 转 date
@Mapping(target = "birthDay", dateFormat = "yyyy-MM-dd")
// happenDay有 date 转 string
@Mapping(target = "happenDay", dateFormat = "yyyy-MM-dd")
3、ignore 字段忽略
// boolean ignore() default false;
@Mapping(target = "ignore", ignore = true)
4、编写Java方法表达式,使用自定义工具类进行字段值转变

ConverterUtil .class工具类

public class ConverterUtil {public static List<String> strToList(String str){return Arrays.asList(str.split(","));}
}

使用格式

@Mapping(target = "ids", expression = "java(ConverterUtil.strToList(user.getIds()))")
UserVo UserToUserVo(User user);
5、字段映射
// User的label  映射到 UserVo的value
@Mapping(source = "label", target = "value")
UserVo UserToUserVo(User user);
6、设置属性为常量或者默认值
// 设置常量
@Mapping(source = "id", target = "id", constant = "-1L")
UserVo UserToUserVo(User user);
// 设置默认值
@Mapping(source = "id", target = "id", defaultValue= "1024L")
UserVo UserToUserVo(User user);

4、后续

以上就是笔者目前在项目所用的一些记实,如果想了解更多,笔者找到一份比较详细的文章,用来参考
MapStruct之@Mapping注解的用法
官方文档

http://www.hkea.cn/news/152062/

相关文章:

  • 为什么只有中国人怕疫情seo 页面
  • 网站开发总结报告十大门户网站
  • 临淄信息港发布信息临沂seo建站
  • 门户网站系统介绍企业推广哪个平台好
  • 免费网站建站排行榜网站策划报告
  • 网站设计的评估最近发生的热点新闻
  • 设建网站广告投放渠道
  • 日ip5000的网站怎么做如何提高网站在搜索引擎中的排名
  • 网站描文本链接怎么做深圳互联网营销
  • 一个服务器做两个网站自己做网站
  • 百草味网站建设的活动方案营销型企业网站有哪些
  • 论文课程网站 建设背景项目推广方式有哪些
  • 内部网站建设关键词优化推广策略
  • 一个公司可以做几个网站备案贵阳网络推广排名
  • 武汉高端网站建设免费广告网
  • 大理建网站常用于网站推广的营销手段是
  • js怎么做网站跨境电商网站
  • 台州外贸网站建设百度推广费用多少
  • 虚拟机怎么做网站空间培训班管理系统 免费
  • wordpress离线文章发布郑州seo关键词排名优化
  • 龙岗区网站建设中国职业培训在线
  • 南山网站建设外包优化网站
  • 个人怎么做网站推广神起网络游戏推广平台
  • 做网站的关键技术运营推广的方式和渠道有哪些
  • jsp做就业网站网推项目
  • 网站开发的目的和意义重庆seo排名电话
  • 顺义专业建站公司最有效的线上推广方式
  • 大连网站网站搭建制作百度识图 上传图片
  • 给人做网站多少钱黑科技引流推广神器怎么下载
  • 沈阳做网站最好的公司百度快照怎么删除