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

衡阳网站建设ss0734哪家卖的wordpress主题好

衡阳网站建设ss0734,哪家卖的wordpress主题好,婚庆公司报价表,专业网站维护前言 在项目中#xff0c;常常会遇到从数据库读取数据后不能直接返回给前端展示的情况#xff0c;因为还需要对字段进行加工#xff0c;比如去除时间戳记录、隐藏敏感数据等。传统的处理方式是创建一个新类#xff0c;然后编写大量的 get/set 方法进行赋值#xff0c;若字…前言 在项目中常常会遇到从数据库读取数据后不能直接返回给前端展示的情况因为还需要对字段进行加工比如去除时间戳记录、隐藏敏感数据等。传统的处理方式是创建一个新类然后编写大量的 get/set 方法进行赋值若字段很多这无疑是一场噩梦而且还容易出现遗漏的情况。 我们都清楚随着工程日益成熟模块划分会越发细致。实体类通常存放在 domain 中但最好不要让 domain 工程被其他工程依赖。所以当其他工程需要获取实体类数据时就需要在各自工程中编写 model。自定义 model 能够根据自身业务需求映射相应的实体属性。如此一来这个映射工作似乎并不简单。 这个时候我们可以使用MapStruct 在企业级应用中经常需要在不同类型的对象如 DTO 和 DO、VO 和 PO 等之间进行转换。MapStruct 通过在编译时基于接口定义生成转换代码大大简化了这个过程。例如从一个包含用户注册信息的 DTO 转换为一个用于业务逻辑处理的 DO 时只需要定义一个 MapStruct 接口。 引入依赖 propertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingjava.version17/java.versionmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetlombok.version1.18.34/lombok.versionmapstruct.version1.6.2/mapstruct.version /propertiesdependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/version/dependencydependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion${mapstruct.version}/version/dependencydependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion${mapstruct.version}/versionscopeprovider/scope/dependency/dependenciesorg.mapstruct:mapstruct 这是MapStruct的核心库。它包含了用于定义映射接口的注解如Mapper、Mapping等以及在运行时执行映射操作所需的类型和接口。开发人员在Java代码中使用这些注解来定义对象之间的映射关系。例如在不同的领域对象Domain Object、数据传输对象Data Transfer Object、视图对象View Object等之间的转换映射。这个库提供了基本的框架使得可以按照声明式的方式指定对象属性如何从一个对象映射到另一个对象。当执行映射操作时例如通过调用由MapStruct生成的映射器实例的映射方法这个库中的代码会协调映射过程根据定义的映射规则进行数据的转换。 org.mapstruct:mapstruct - processor 这个依赖是MapStruct的注解处理器Annotation Processor。在Java编译过程中它会查找带有MapStruct注解来自org.mapstruct:mapstruct库的接口或抽象类。一旦找到这样的接口或抽象类它会根据定义的映射关系通过Mapper、Mapping等注解生成具体的映射实现类。这个生成过程是在编译时进行的生成的代码会被编译到最终的字节码中。例如如果有一个定义了从SourceObject到TargetObject映射关系的Mapper接口mapstruct - processor会生成一个实现该接口的类这个类包含了将SourceObject的属性值按照指定规则赋给TargetObject属性的具体代码。这里的scopeprovider/scope表示该依赖是一个提供运行时环境所需的组件主要用于在编译时提供代码生成功能。 定义实体 定义两个实体字段上略微有些差别 import java.util.Date;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor AllArgsConstructor public class User {private long id;private String name;private int age;private String password;private Date createTime; }import lombok.Data;Data public class UserVO {private Long id;private String name;private Integer age;private String code;private String hello;private String createTime; }定义转换的mapper 如果是spring项目用Mapper(componentModel spring)生成的实现类上面会自动添加一个Component注解可以通过Spring的 Autowired方式进行注入 package com.zxy.demo;import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers;Mapper public interface UserMapper {public static final UserMapper INSTANCE Mappers.getMapper(UserMapper.class);static String hello(User user) {return hello user.getName();}Mapping(target createTime, source createTime, dateFormat yyyy-MM-dd HH:mm:ss)Mapping(target code, expressionjava(\xx-\ user.getId()))Mapping(target hello, expression java(UserMapper.hello(user)))UserVO toUserVO(User user);} 如果所有的字段都一样用Mappings({})。 不一样的用targetsource需要特殊处理的可以用expression。 在 MapStruct 中expression是一个强大的功能用于在对象映射过程中执行自定义的表达式。它允许开发人员在映射规则中使用 Java 表达式来处理复杂的映射逻辑而不仅仅是简单的属性到属性的映射。 这在源对象和目标对象的属性之间存在复杂关系或者需要进行额外的计算、逻辑判断等情况时非常有用。 来个单测运行一下 package com.zxy.demo;import java.util.Date;import org.junit.Assert; import org.junit.Test;public class UserTest {Testpublic void ok() {User u new User();u.setId(1);u.setAge(10);u.setName(zxy);u.setPassword(123456);u.setCreateTime(new Date());Assert.assertEquals(10, u.getAge());Assert.assertEquals(zxy, u.getName());System.out.println(new User(1, zxy, 12, 123456, new Date()));UserVO vo UserMapper.INSTANCE.toUserVO(u);System.out.println(vo: vo);Assert.assertEquals(zxy, vo.getName());Assert.assertEquals(xx-1, vo.getCode());Assert.assertEquals(hello zxy, vo.getHello());} }简单看一下生成的代码 // Source code is unavailable, and was generated by the Fernflower decompiler. package com.zxy.demo;import java.text.SimpleDateFormat;public class UserMapperImpl implements UserMapper {public UserVO toUserVO(User user) {if (user null) {return null;} else {UserVO userVO new UserVO();if (user.getCreateTime() ! null) {userVO.setCreateTime((new SimpleDateFormat(yyyy-MM-dd HH:mm:ss)).format(user.getCreateTime()));}userVO.setId(user.getId());userVO.setName(user.getName());userVO.setAge(user.getAge());userVO.setCode(xx- user.getId());userVO.setHello(UserMapper.hello(user));return userVO;}} }
http://www.hkea.cn/news/14421245/

相关文章:

  • 免费的网站申请鹿泉市建设局网站
  • 金融集团网站建设方案免备案虚拟主机空间
  • 网站流量如何转化为钱免费网站建设步骤
  • 简单做网站需要学什么软件wordpress的极限
  • 手机做直播官方网站北京seo实训班学校
  • 网络公司 网站建设 小程序做练习题的网站
  • 文本资料分享网站 建设wordpress 数据库合并
  • 哈巴河网站制作制作一个自己的网站
  • 谷歌网站地图生成器腾达建设哪里的
  • 网站截流做cpa设计新闻发布网站模板
  • 大连个人网站建设小红书关键词排名怎么做
  • 网站建设煊煊网为什么要域名备案
  • 门户网站等保二级建设方案用wordpress案例
  • 有哪些是用到了网站推广酷虎云建站工具
  • 网站建设:上海珍岛怎么免费建设网站
  • 网站商业授权含义wordpress恢复旧的编辑页面
  • 素材下载网站开发文档网页设计模板html代码五四主题
  • 网站建设销售找客户话术安卓手机优化大师官方下载
  • 企业网站关键词放几个好的产品设计网站
  • 上海网站建设 润开发公司销售房产交哪些税
  • 什么网站可以做投票都匀市城乡建设局网站
  • 在元典公司做网站有合同吗wordpress 4.
  • 长沙网站建设哪里好学做ppt的网站有哪些内容
  • 遵义网络公司优化网站制作方法大全
  • 河西网站建设制作一般使用的分辨率是多少
  • 哪些域名不能够做淘宝客网站网络怎样做推广
  • 建网站一般要多少钱网站域名申请好了怎么建设网站
  • 免费空间访客100个网站招远网站建设联系电话
  • 网站自建苏州企业做网站
  • 网站维护包括哪些怎么创建一个公司网站