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

网站群管理平台建设西宁网站开发公司

网站群管理平台建设,西宁网站开发公司,如何建设本地网站,在哪注册网站源码#xff1a;https://gitee.com/cao_wen_bin/test 最近在公司遇到了这样一个为题#xff0c;前端传过来的是一个ListManager,往数据库中保存到时候是String#xff0c;这个String使用谷歌的json转化器。 当查询的时候在将这个数据库中String的数据以ListMana…源码https://gitee.com/cao_wen_bin/test 最近在公司遇到了这样一个为题前端传过来的是一个ListManager,往数据库中保存到时候是String这个String使用谷歌的json转化器。 当查询的时候在将这个数据库中String的数据以ListManager的形式返回给前端。 使用mapstruct中在怎样将String转化为List。在此记录一下。 1.引入依赖 !--mapstruct-- dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion1.5.5.Final/version /dependency dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion1.5.5.Final/version /dependency2.PO-DTO package com.cao.pojo;import lombok.Data; import lombok.ToString; import lombok.experimental.Accessors;Data Accessors(chain true) ToString public class Manager {private String name;private String code; }需求是将PO转化为DTO,但是PO中的类型是String,而DTO中的类型是List ManagerPO中的acctManagerList属性是String package com.cao.po;import lombok.Data; import lombok.ToString; import lombok.experimental.Accessors;Data Accessors(chain true) ToString public class ManagerPO {private Long id;private String acctManagerListString; }ManagerDTO中的acctManagerList属性是ListManager package com.cao.dto;import com.cao.pojo.Manager; import lombok.Data; import lombok.ToString; import lombok.experimental.Accessors;import java.util.List; Data Accessors(chain true) ToString public class ManagerDTO {private Long id;private ListManager acctManagerList; }3.编写转换代码 因为我是使用的Gson把ListManager转换为String所以从String转换为ListManager也要用相同的json转换不然会出现异常 import com.cao.dto.ManagerDTO; import com.cao.po.ManagerPO; import com.cao.pojo.Manager; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import org.apache.commons.lang3.StringUtils; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers;import java.util.List;Mapper public interface ManagerBeanConvert {ManagerBeanConvert INSTANCE Mappers.getMapper(ManagerBeanConvert.class);Mapping(target id, source id)Mapping(target acctManagerList, expression java(MapStruct.strToList(managerPO.getAcctManagerListString())))ManagerDTO po2Dto(ManagerPO managerPO);Mapping(target id, source id)Mapping(target acctManagerListString, expression java(MapStruct.listToStr(managerDTO.getAcctManagerList())))ManagerPO dto2Po(ManagerDTO managerDTO);class MapStruct {/*** po中的String转为dto中的list*/public static ListManager strToList(String acctManagerListString) {if (StringUtils.isNotEmpty(acctManagerListString)) {// 将po中的acctManagerListString用Gson转换成为list(必须和list转String使用相同的转换器)ListManager managerList new Gson().fromJson(acctManagerListString, new TypeTokenListManager() {}.getType());return managerList;}return null;}/*** dto中的list转为po中的String*/public static String listToStr(ListManager managerList) {if (!CollectionUtils.isEmpty(managerList)) {// 将dto中的acctManagerList用Gson转换成为String(必须和String转list使用相同的转换器)String managerListString new Gson().toJson(managerList);return managerListString;}return null;}} }4.测试代码和测试 import com.cao.beanconvert.ManagerBeanConvert; import com.cao.dto.ManagerDTO; import com.cao.po.ManagerPO; import com.cao.pojo.Manager; import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j;import java.util.*; Slf4j public class BeanConvertTest {public static void main(String[] args) {// po中的String转为dto中的listpoString2DtoList();System.out.println();// dto中的list转为po中的StringdtoList2PoString();}private static void dtoList2PoString() {ListManager managerList new ArrayList();managerList.add(new Manager().setCode(0001).setName(管理员1号));managerList.add(new Manager().setCode(0002).setName(管理员2号));ManagerDTO managerDTO new ManagerDTO().setId(3L).setAcctManagerList(managerList);log.info(managerDTO是: {},managerDTO);ManagerPO managerPO ManagerBeanConvert.INSTANCE.dto2Po(managerDTO);log.info(managerDTO转换为managerPO结果是: {},managerPO);}private static void poString2DtoList() {//设置ListManagerListManager managerList new ArrayList();managerList.add(new Manager().setCode(0001).setName(管理员1号));managerList.add(new Manager().setCode(0002).setName(管理员2号));//使用Gson将list转换成StringString managerListString new Gson().toJson(managerList);ManagerPO managerPO new ManagerPO();managerPO.setId(1L).setAcctManagerListString(managerListString);log.info(managerPO是:{},managerPO);ManagerDTO managerDTO ManagerBeanConvert.INSTANCE.po2Dto(managerPO);log.info(managerPO转换为managerDTO结果是: {},managerDTO);} }5.改造 虽然上面的写法已经可以满足需求了但是在ManagerBeanConvert接口中写内部类的话不规范所以要修改。 新建一个专门的用于类型属性的转换的类AttributeConvertUtil将接口中的内部类挪到这个新建的类中并在方法上面加上Named(“别名”) import com.cao.pojo.Manager; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import org.apache.commons.lang3.StringUtils; import org.mapstruct.Named; import org.springframework.util.CollectionUtils;import java.util.List;public class AttributeConvertUtil {/*** po中的String转为dto中的list*/Named(strToList)public ListManager strToList(String acctManagerListString) {if (StringUtils.isNotEmpty(acctManagerListString)) {// 将po中的acctManagerListString用Gson转换成为list(必须和list转String使用相同的转换器)ListManager managerList new Gson().fromJson(acctManagerListString, new TypeTokenListManager() {}.getType());return managerList;}return null;}/*** dto中的list转为po中的String*/Named(listToStr)public String listToStr(ListManager managerList) {if (!CollectionUtils.isEmpty(managerList)) {// 将dto中的acctManagerList用Gson转换成为String(必须和String转list使用相同的转换器)String managerListString new Gson().toJson(managerList);return managerListString;}return null;} }修改接口 1.在Mapper上引用我们的自定义转换代码类AttributeConvertUtil 2.使用qualifiedByName指定我们使用的自定义转换方法 import com.cao.dto.ManagerDTO; import com.cao.po.ManagerPO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers;Mapper(uses AttributeConvertUtil.class) //将自定义类引入进来 public interface ManagerBeanConvert {ManagerBeanConvert INSTANCE Mappers.getMapper(ManagerBeanConvert.class);Mapping(target id, source id)Mapping(target acctManagerList, source acctManagerListString, qualifiedByName strToList)// qualifiedByName的值和别名一样ManagerDTO po2Dto(ManagerPO managerPO);Mapping(target id, source id)Mapping(target acctManagerListString, source acctManagerList, qualifiedByName listToStr) // qualifiedByName的值和别名一样ManagerPO dto2Po(ManagerDTO managerDTO); }源码https://gitee.com/cao_wen_bin/test
http://www.hkea.cn/news/14360336/

相关文章:

  • 网站建设心得8000字广告设计公司年终总结
  • 特卖网站设计山西百度查关键词排名
  • 烟台手机网站建设费用学生网页设计模板素材
  • 网站规划总结建个什么网站好呢
  • 长沙网站建设长沙wordpress 公众号登录界面
  • 免费网站建设找云狄邯郸商城网站建站
  • 跨境电商网站建设主管岗位职责经典网站首页
  • dede手机网站更新网站开发毕业设计开课题目
  • 深圳网站制作公司平台wordpress怎么放视频
  • 做网站服务器多大的好济南网站制作建设
  • 塘厦东莞网站建设c2c模式的特点有哪些
  • 网站设计专业网站ie兼容性差
  • 老师做家教的网站小程序注册的账号是什么
  • 手机网站建设软件有哪些济南建站哪家好
  • 网站运营 广告爱网站在线观看视频
  • 社交网站 源码网站建设 dw 时间轴
  • 网站你懂我意思正能量晚上在线观看不用下载免费魅族网站建设全部教程
  • 易县网站建设中国工程建筑网
  • 分享类网站源码网站开发怎样手机号验证
  • 电子商务网站建设分析和总结cms开源系统php
  • 坪地网站建设基本流程安庆做网站网站代理
  • 无为县住房建设局网站北京性价比网站建设
  • 西安信誉好的做网站的提供做网站公司有哪些
  • 公司网站开发 中山大神自己做的下载音乐的网站
  • 网站建设吉金手指排名15简网app工场体验
  • 汕头网站推广优化网站前端建设需要学会什么
  • 有什么做兼职的好网站网站建设报价选兴田德润
  • 合肥网站建设技术支持ui图标素材网站
  • 网站建设运营推广开发网站网络公司排行
  • 网站开发后台注意事项gif在线制作生成器