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

石家庄专业商城网站制作网站开发流程管理

石家庄专业商城网站制作,网站开发流程管理,百度网站首页的设计理念,商务网站建设兴田德润电话多少将数据从一种形式转换为另一种形式在IT行业中是一种被高度利用的概念。 MapStruct通过在编译时生成映射器实现#xff0c;允许基于注释的Bean转换。 这样可以确保在运行时没有性能开销。 什么是MapStruct#xff1f; MapStruct是一个代码生成器#xff0c;它基于约定优于配… 将数据从一种形式转换为另一种形式在IT行业中是一种被高度利用的概念。 MapStruct通过在编译时生成映射器实现允许基于注释的Bean转换。 这样可以确保在运行时没有性能开销。 什么是MapStruct MapStruct是一个代码生成器它基于约定优于配置的方法大大简化了Java Bean类型之间的映射的实现。 生成的映射代码使用简单的方法调用因此速度快类型安全且易于理解。 为什么选择MapStruct 多层应用程序通常需要在不同的对象模型例如实体和DTO之间进行映射。 编写此类映射代码是一项繁琐且容易出错的任务。 MapStruct旨在通过使其尽可能自动化来简化这项工作。 与其他映射框架相比MapStruct在编译时生成Bean映射以确保高性能允许快速的开发人员反馈和彻底的错误检查。 实作 pom.xml 在web.xml中添加“ maven-compiler-plugin ”并使用组ID“ org.apache.maven.plugins ”。 您可以添加特定的jdk源/目标版本并从以下位置获取最新版本 MapStruct网站 。 plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.5.1/versionconfigurationsource1.6/source !-- or higher, depending on your project --target1.6/target !-- or higher, depending on your project --annotationProcessorPathspathgroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion1.1.0.Beta1/version/path/annotationProcessorPaths/configuration /plugin 现在添加mapstruct jar作为依赖项。 dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion1.1.0.Beta1/version /dependency问题陈述与解决方案 假设我们有两个表示个人和业务联系的pojo如下所述并且我们都在特定的jsps上使用这两个pojo。 现在对于两个联系人都相同的功能我们需要将数据从一种pojo传输到另一种。 PrimaryContact.java public class PrimaryContact {private String name;private String phone;private String email;public PrimaryContact() {super();}public PrimaryContact(String name, String phone, String email) {super();this.name name;this.phone phone;this.email email;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone phone;}public String getEmail() {return email;}public void setEmail(String email) {this.email email;}Overridepublic String toString() {return PrimaryContact [name name , phone phone , email email ];}} BusinessContact.java public class BusinessContact {private String firstName;private String lastName;private String businessPhone;private String businessEmail;private String businessCountry;public BusinessContact() {super();}public BusinessContact(String firstName, String lastName, String businessPhone, String businessEmail,String businessCountry) {super();this.firstName firstName;this.lastName lastName;this.businessPhone businessPhone;this.businessEmail businessEmail;this.businessCountry businessCountry;}public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName firstName;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName lastName;}public String getBusinessPhone() {return businessPhone;}public void setBusinessPhone(String businessPhone) {this.businessPhone businessPhone;}public String getBusinessEmail() {return businessEmail;}public void setBusinessEmail(String businessEmail) {this.businessEmail businessEmail;}public String getBusinessCountry() {return businessCountry;}public void setBusinessCountry(String businessCountry) {this.businessCountry businessCountry;}Overridepublic String toString() {return BusinessContact [firstName firstName , lastName lastName , businessPhone businessPhone , businessEmail businessEmail , businessCountry businessCountry ];}} 我们编写一个Mapper来传输数据如下所示。 注释Mappings定义了将源pojo中的哪些属性转移到目标pojo中的特定属性。 批注定义InheritInverseConfiguration反向映射要完成。 ContactMapper.java /*** author javareferencegv*/ Mapper DecoratedWith(ContactMapperDecorator.class) public interface ContactMapper {ContactMapper INSTANCE Mappers.getMapper(ContactMapper.class);/*** We define only those mappings which doesnt have same signature in source and target*/ Mappings({ Mapping(source phone, target businessPhone),Mapping(source email, target businessEmail),Mapping(target businessCountry, constantUSA)})BusinessContact primaryToBusinessContact(PrimaryContact primary);InheritInverseConfigurationPrimaryContact businessToPrimaryContact(BusinessContact business);} 在某些情况下映射不是直接的我们需要在将一个属性映射到另一个属性之前使用自定义逻辑。 这里的一个例子是主要联系人有全名而业务联系人有名和姓。 在这种情况下我们使用装饰器添加自定义实现。 这是在映射器中添加定义的注释DecoratedWith。 装饰器的实现如下 ContactMapperDecorator.java public abstract class ContactMapperDecorator implements ContactMapper{private final ContactMapper delegate;public ContactMapperDecorator(ContactMapper delegate) {this.delegate delegate;}Overridepublic BusinessContact primaryToBusinessContact(PrimaryContact primary){BusinessContact business delegate.primaryToBusinessContact(primary); //Executes the mapperString[] names primary.getName().split( );business.setFirstName(names[0]);business.setLastName(names[1]);return business;}Overridepublic PrimaryContact businessToPrimaryContact(BusinessContact business){PrimaryContact primary delegate.businessToPrimaryContact(business); //Executes the mapperprimary.setName(business.getFirstName() business.getLastName());return primary;}} 执行方式 一旦我们构建了一个实现类文件它将由mapstruct生成。 我们都准备运行映射器。 public class ContactConvertor {public static void main(String[] args) {PrimaryContact primary new PrimaryContact(Jack Sparrow,9999999999,testjavareferencegv.com);BusinessContact business ContactMapper.INSTANCE.primaryToBusinessContact(primary);System.out.println(business);PrimaryContact primaryConverted ContactMapper.INSTANCE.businessToPrimaryContact(business);System.out.println(primaryConverted);}} 输出 BusinessContact [firstNameJack, lastNameSparrow, businessPhone9999999999, businessEmailtestjavareferencegv.com, businessCountryUSA] PrimaryContact [nameJack Sparrow, phone9999999999, emailtestjavareferencegv.com]翻译自: https://www.javacodegeeks.com/2016/12/mapstruct-transferring-data-one-bean-another.html
http://www.yutouwan.com/news/128211/

相关文章:

  • 市场部做网站工作职责蓬莱网站建设公司报价
  • 做室内装修的网站电子简历表格 个人简历
  • 地产项目网站建设ppt一级造价师准考证打印时间
  • 做网站客户一般会问什么问题ci框架建设网站案例
  • 宿迁做百度网站地点佛山企业网站建设平台
  • 不用写代码做的网站做网站需要用什么语言开发
  • 自建网站视频教程网站建设应该考虑哪些问题
  • 网站如何防盗链网站开发工资如何
  • c2c网站免费建设微信投放广告多少钱
  • 太原自助建站系统做网站前端后台
  • 上海培训网站建设wordpress 配置模板
  • 深圳网站建设的服务学做软件的网站
  • 建设网站建设工程信息泰州网1242低工程词郑州发布
  • 有那些可以自己做壁纸的网站互联网网站建设挣钱吗
  • 网站设计需要多少费用做网站除了dw
  • 展会网站源码做一套二级域名网站怎么做
  • 设计网站的功能有哪些wordpress去掉文章采集
  • 百度网站优化 件邢台营销型网站建设
  • 融资融券配资网站建设宁波网站建设兼职
  • 即墨网站开发公司阅读网站源码
  • 360免费网站空间化妆品电子商务网站开发流程描述
  • 济宁培训网站建设苏州有什么好玩的景点
  • 婚纱网站建设需求分析百度推广怎么弄
  • 织梦网站后台打开空白网站设计论文介绍
  • 开源系统网站南阳做网站公司电话
  • 番禺低价网站建设建站用哪个模板好
  • wordpress多站点用户互通只有一个人网站开发
  • wordpress对网站排名咚咚抢网站怎么做的
  • 网站模板 红色一是加强了网站建设
  • 老罗做的网站买了阿里云怎么做网站