wordpress网站属于什么网站吗,WordPress不能新建页面,手机设计软件免费,编程培训机构出来的能找到工作吗一、MapStruct
1.1何为MapStruct 要说这个东西#xff0c;其实和我们刚刚讲到的Lombok相类似。其是由我们的源代码加上MapStruct经过编译后得到.class文件#xff0c;文件中自动补全了代码。那么补全了什么代码#xff1f;实现了什么功能#xff1f; MapStruct的产生…一、MapStruct
1.1何为MapStruct 要说这个东西其实和我们刚刚讲到的Lombok相类似。其是由我们的源代码加上MapStruct经过编译后得到.class文件文件中自动补全了代码。那么补全了什么代码实现了什么功能 MapStruct的产生我们还需要看看在这之前的一些情况。对于我们的不同JavaBean之间在项目开发时总会涉及到相互转化。PO、DTO、VO之间。 方式一BeanUtil.copyProperties浅拷贝(相同引用、属性、名称限制、需要get、set方法、慢等)。 方式二纯纯get、set、也可以builder慢冗余。 MapSturct 是一个生成类型安全 高性能且无依赖的 JavaBean 映射代码的注解处理器annotation processor。
1.2添加MapStruct 导入依赖
dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion1.6.0.Beta1/version
/dependency 而在我使用的过程中发现Lombok和MapStruct会发生版本冲突。解决在pom.xml中配置。
pluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.11.0/versionconfigurationannotationProcessorPathspathgroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion1.6.0.Beta1/version/pathpathgroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.22/version/pathpathgroupIdorg.projectlombok/groupIdartifactIdlombok-mapstruct-binding/artifactIdversion0.2.0/version/path/annotationProcessorPaths/configuration/plugin
plugins 如此我们就可以同时使用Lombok和MapStruct。
1.3使用MapStruct
1.3.1简单拷贝(dto2vo、vo2dto) 步骤一创建Mapper接口加上Mapper注解(注意是MapStruct包下的注解) 步骤二书写转换方法。 步骤三实践。
1.3.2交给IoC、创建单例 1.3.3不同字段之间的映射 Mappings和Mapping注解
1.3.4多对象转一个对象
当多个对象中 有其中一个为 null 则会直接返回 null如一对一转换一样 属性通过名字来自动匹配。 因此 名称和类型相同的不需要进行特殊处理当多个原对象中有相同名字的属性时需要通过 Mapping 注解来具体的指定 以免出现歧义不指定会报错。
1.3.5一个对象转多个对象
1.3.6编译器支持