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

跨境购物网站建设sae wordpress 更新

跨境购物网站建设,sae wordpress 更新,长春网站快速优化排名,外发加工网站目录 目的 准备 注意 相同类型-属性名不同 实体类 映射 使用 验证-查看实现类 测试 不同类型(策略模式) 实体类 映射 工具类 使用#xff1a;对象拷贝 验证-查看实现类 测试 使用#xff1a;集合拷贝 测试 策略模式说明 准备-依赖 目的 简化 BeanUtils.…目录 目的 准备 注意 相同类型-属性名不同 实体类  映射 使用 验证-查看实现类 测试 不同类型(策略模式) 实体类 映射 工具类 使用对象拷贝 验证-查看实现类 测试 使用集合拷贝 测试 策略模式说明 准备-依赖 目的 简化 BeanUtils.copyProperties 属性对拷代码自动生成空判断结合策略模式自定义转换 集合对拷一行代码就能完成以前 先new再 for循环再add的多行代码而且也不用判空 准备 这里我将开发中经常用到的全部依赖都列举出来若下载不下来依赖将settings.xml替换成我博客存档的那一份此处为了不影响观看放在文章末尾处。 注意 写好转换之后maven 记得 clean install查看一下生成的实现类有没有问题 实现类在  target 里面若target没有执行下列操作 相同类型-属性名不同 将 下面 Doctor 中的  i1  s1  分别转给 DoctorDto 中的  i2  s2 实体类  Data NoArgsConstructor AllArgsConstructor public class Doctor {private int id;private String name;String s1;int i1; } Data AllArgsConstructor NoArgsConstructor public class DoctorDto {private int id;private String name;private String s2;private int i2; } 映射 Mapper(componentModel spring) public interface BeanConvert {BeanConvert INSTANCE Mappers.getMapper(BeanConvert.class);/*** 不一致的属性映射*/Mappings({Mapping(target i2, source i1),Mapping(target s2, source s1)})DoctorDto toDto(Doctor doctor); } 使用 GetMapping(/test)public DoctorDto get() {Doctor doctor new Doctor();doctor.setId(1);doctor.setName(张三);doctor.setI1(1);doctor.setS1(1);return BeanConvert.INSTANCE.toDto(doctor);} 验证-查看实现类 clean install  重启 测试 可以看到 i1s1中的值已经过来了 不同类型(策略模式) 实体类 将下面 Sku2 中的  Long date  Integer code  分别转给 SkuDTO2 中的  Date date  String value 一个是时间戳转换一个是枚举转换 Data NoArgsConstructor AllArgsConstructor FieldDefaults(level AccessLevel.PRIVATE) public class Sku2 {Long skuId;String skuCode;String skuPrice;ListString nameList;Long date;Integer code; } Data NoArgsConstructor AllArgsConstructor FieldDefaults(level AccessLevel.PRIVATE) public class SkuDTO2 {Long skuId;String skuCode;String skuPrice;ListString nameList;Date date;String value; } 映射 uses 定义了两个策略一个负责转换时间戳一个负责转换枚举 Mapper(componentModel spring, uses {TimeConvertStrategy.class, EnumConvertStrategy.class}) public interface BeanConvert {/*** 策略模式测试*/Mapping(target value, source code)SkuDTO2 domain2Dto(Sku2 sku2);} Component public class EnumConvertStrategy {public String convert(Integer code) {return MyEnum.getByCode(code);}} Component public class TimeConvertStrategy {public Date date2TimeStamp(Long timeStamp) {if (timeStamp null) {return null;}return new Date(timeStamp);}} public enum MyEnum {A(1,哈哈),B(2,呵呵);private final Integer code;private final String msg;MyEnum(int code, String msg) {this.code code;this.msg msg;}public Integer getCode() {return code;}public String getMsg() {return msg;}public static String getByCode(Integer code) {if (code null) {return null;}for (MyEnum value : MyEnum.values()) {if (value.getCode().equals(code)) {return value.getMsg();}}return null;}} 工具类 这里使用工具类主要是辅助容器中的bean初始化的包括我们定义的策略的初始化 /*** ApplicationContextAware 接口可以让 Bean 获取到 ApplicationContext 对象* 通过这个对象可以获取 Spring 容器中的其他 Bean实例 或一些组件*/ Component public class ConvertSupport implements ApplicationContextAware {private static BeanConvert beanConvert;/*** 启动的时候直接获取到 beanConvert 的实例*/Overridepublic void setApplicationContext(ApplicationContext context) throws BeansException {// 这里如果没有执行说明没有注入容器但是我有了Component注解说明其未生效主启动类ComponentScan指定一下if (beanConvert null) {beanConvert context.getBean(BeanConvert.class);System.out.println(执行过这里);}}/*** 列表转换*/public static I, O ListO copyList(ListI inputList, BiFunctionBeanConvert, I, O function) {if (CollectionUtils.isEmpty(inputList)) {return Collections.emptyList();}ListO resultList new ArrayList(inputList.size());for (I input : inputList) {resultList.add(function.apply(beanConvert, input));}return resultList;}/*** bean to bean*/public static I, O O castBean(I input, BiFunctionBeanConvert, I, O function) {return function.apply(beanConvert, input);}} 使用对象拷贝 GetMapping(/test2)public SkuDTO2 get2() {Sku2 sku2 new Sku2();sku2.setSkuId(1L);sku2.setSkuCode(2);sku2.setNameList(Lists.newArrayList(测, 试));sku2.setDate(new Date().getTime());sku2.setCode(1);return ConvertSupport.castBean(sku2, BeanConvert::domain2Dto);} 验证-查看实现类 clean install  重启 测试 使用集合拷贝 GetMapping(/test3)public ListDoctorDto get3() {ListDoctor list Lists.newArrayList(new Doctor(1, 张三, 1, 1),new Doctor(2, 李四, 2, 2),new Doctor(3, 王五, 3, 3));return ConvertSupport.copyList(list, BeanConvert::toDto);} 此后一行代码就能完成以前 先new再 for循环再add的多行代码而且也不用判空 测试 策略模式说明 上面使用的是用来处理不同类型平常去除 if else 的使用方式 先定义两个 策略和上面类似spring管理后通过策略内部判断决定怎么走方法再抽象出一层 /*** 策略1*/ Component public class Situation1 implements Situation {private static final String value 用户传过来的值为1;/*** 判断进入哪个策略(if)*/Overridepublic Boolean judge(String val) {return value.equals(val);}/*** 逻辑处理*/Overridepublic int logic(int a, int b) {return a b;} } /*** 策略2*/ Component public class Situation2 implements Situation {private static final String value 用户传过来的值为2;/*** 判断进入哪个策略(if)*/Overridepublic Boolean judge(String val) {return value.equals(val);}/*** 逻辑处理*/Overridepublic int logic(int a, int b) {return a - b;} } public interface Situation {/*** 判断进入哪个策略(if)*/Boolean judge(String val);/*** 逻辑处理*/int logic(int a, int b); } RestController public class StrategyTest {Autowiredprivate ApplicationContext applicationContext;GetMapping(/test/st)public void test() {String value 用户传过来的值为2;MapString, Situation beans applicationContext.getBeansOfType(Situation.class);beans.forEach((k, Strategy) - {// 判断用户传过来的值从而决定进入哪个策略if (Strategy.judge(value)) {int num Strategy.logic(8, 2);System.out.println(num);}});} } 准备-依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.6.1/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.mytest/groupIdartifactIdspringboot-demo/artifactIdversion0.0.1-SNAPSHOT/versionnamespringboot-demo/namedescriptionspringboot-demo/descriptionpropertiesorg.mapstruct.version1.5.0.RC1/org.mapstruct.versionorg.projectlombok.version1.18.22/org.projectlombok.versionlombok-mapstruct-binding.version0.2.0/lombok-mapstruct-binding.versionmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.target/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--HuTool为我们提供的一些便捷工具。--dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion4.1.14/version/dependency!--Valid--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactIdversion2.3.2.RELEASE/version/dependency!--自定义注解--dependencygroupIdjavax.validation/groupIdartifactIdvalidation-api/artifactIdversion2.0.1.Final/version/dependency!-- 定时任务 --dependencygroupIdorg.quartz-scheduler/groupIdartifactIdquartz/artifactIdexclusionsexclusiongroupIdcom.mchange/groupIdartifactIdc3p0/artifactId/exclusion/exclusions/dependency!-- 解析客户端操作系统、浏览器等 --dependencygroupIdeu.bitwalker/groupIdartifactIdUserAgentUtils/artifactIdversion1.21/version/dependency!-- pagehelper 分页插件 注意 pagehelper 和 spring-boot-starter-parent 版本容易出现循环依赖 一般通过加Lazy解决这里通过版本号解决--dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion1.4.1/version/dependency!--HttpUtils需要的所有依赖--dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.15/version/dependencydependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpclient/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependency!--mybatisplus--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.1/version/dependency!--DateTime 需要的依赖由于没有版本号管理如果不写version上面有一处会爆红--dependencygroupIdjoda-time/groupIdartifactIdjoda-time/artifactIdversion2.9.4/version/dependency!--代码生成器--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-generator/artifactIdversion3.4.1/version/dependency!--velocity模板引擎--dependencygroupIdorg.apache.velocity/groupIdartifactIdvelocity-engine-core/artifactIdversion2.3/version/dependency!-- easyexcel依赖 --dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.0.5/version/dependencydependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-base/artifactIdversion4.3.0/version/dependencydependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-web/artifactIdversion4.3.0/version/dependencydependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-annotation/artifactIdversion4.3.0/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version/dependency!--Lists.partition 需要的依赖--dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion25.1-jre/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactIdexclusionsexclusiongroupIdio.lettuce/groupIdartifactIdlettuce-core/artifactId/exclusion/exclusions/dependency!-- lt;!ndash;jedisredis客户端ndash;gt;--dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactId/dependency!-- lt;!ndash;使用redisson作为所有分布式锁分布式对象等功能框架也可以使用springboot的方式就不用自己Configuration了ndash;gt;--dependencygroupIdorg.redisson/groupIdartifactIdredisson/artifactIdversion3.13.3/version/dependency!--mysql驱动--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.17/version/dependencydependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion${org.mapstruct.version}/version/dependency!-- 特别注意 mapstruct 和 lombok 的顺序顺序出问题实现类就不映射了 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${org.projectlombok.version}/versionscopeprovided/scope/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.10/version/dependency!--CollectionUtils依赖--dependencygroupIdcommons-collections/groupIdartifactIdcommons-collections/artifactIdversion3.2.2/version/dependencydependencygroupIdcom.google.code.google-collections/groupIdartifactIdgoogle-collect/artifactIdversionsnapshot-20080530/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependency!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -- !-- dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactId/dependency--dependencygroupIdcom.alibaba/groupIdartifactIdtransmittable-thread-local/artifactIdversion2.11.5/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion21.0/version/dependencydependencygroupIdjavax.persistence/groupIdartifactIdpersistence-api/artifactIdversion1.0/version/dependency!--注意3.0.0 版本 http://localhost:8081/swagger-ui.html 页面可能登陆不上去--dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.9.2/version/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.9.2/version/dependency/dependencies!-- 特别注意 mapstruct 和 lombok 的顺序顺序出问题实现类就不映射了 --buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource1.8/sourcetarget1.8/targetannotationProcessorPathspathgroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${org.projectlombok.version}/version/path!-- This is needed when using Lombok 1.18.16 and above --pathgroupIdorg.projectlombok/groupIdartifactIdlombok-mapstruct-binding/artifactIdversion${lombok-mapstruct-binding.version}/version/path!-- Mapstruct should follow the lombok path(s) --pathgroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion${org.mapstruct.version}/version/path/annotationProcessorPaths/configuration/plugin/pluginsresourcesresourcedirectorysrc/main/java/directoryincludesinclude**/*.properties/includeinclude**/*.xml/includeinclude**/*.yml/include/includesfilteringfalse/filtering/resourceresourcedirectorysrc/main/resources/directoryincludesinclude**/*.properties/includeinclude**/*.xml/includeinclude**/*.yml/include/includesfilteringfalse/filtering/resource/resources/build/project
http://www.dnsts.com.cn/news/71817.html

相关文章:

  • 做折扣的网站公司简介模板怎么做
  • 山西企业建站系统平台开源零代码平台
  • 沈阳网站建设思路深圳网页设计公司建设
  • 怎么制作网站的网页设计soho 网站建设
  • 乔智云智能建站江宁住房和城乡建设局网站
  • 广州化妆品网站制作如何引用404做网站
  • 淄博网站开发选网泰wordpress底部添加工信部链接
  • 长春火车站照片建设网站后需要什么知识
  • 做网站用的图片c 做网站怎么发布
  • 外贸网站建设工作室厦门网站制作系统
  • 秦皇岛做网站多少钱jsp如何进行购物网站开发
  • 上海建设工程交易中心网站软件正版化情况及网站建设情况
  • 衡水网站建设一多软件郴州信息港网站
  • php网站优点网络培训班心得体会800字
  • 电脑用虚拟机做网站兰州建设网站
  • 色彩搭配的网站绍兴网站制作套餐
  • 做平面设计在什么网站能挣钱网站正在建设中 英语
  • 做企业网站服务器在国外内蒙古旅游攻略
  • 福建公司网站开发网站建设服务器和空间费
  • 做网站维护要多少钱一年可以在自己的电脑上做网站吗
  • 网站建设开发成本白银市建设局网站
  • 设备租赁业务网站如何做中铁建设门户网登录咋进不去了
  • ps做 网站标准尺寸wordpress菜单分列
  • 药物研发网站怎么做品牌建设及龙头企业
  • 网站 关键词库单页面网站制作技术
  • 怎样在百度能搜到自己的网站网站建设公司美工如何找
  • 暖通设计网站推荐横琴网站建设
  • 深圳市龙华区网站建设积分动力WordPress
  • 威海网站制作团队大连公司注销流程及费用
  • 企业网站 流程智能小程序是什么