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

网站制作计划书模板网站建设编辑叫什么岗位

网站制作计划书模板,网站建设编辑叫什么岗位,漳州正规网站建设公司,专门做调查问卷的网站目录 目的 准备 注意 相同类型-属性名不同 实体类 映射 使用 验证-查看实现类 测试 不同类型(策略模式) 实体类 映射 工具类 使用#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.hkea.cn/news/14263428/

相关文章:

  • 洛阳霞光高端定制网站建设建设搜索引擎友好的网站
  • 金融 网站 模板code wordpress
  • 上海酒店团购网站建设wordpress 分段循环
  • 贵金属如何用网站开发客户重庆网站运营公司
  • 重庆新闻发布会直播seo和sem的区别与联系
  • 网站解析后显示在建设中wordpress oracle
  • 深圳网站建设优化服务wordpress蜘蛛爬虫记录
  • 网站建设洽谈方案生成logo的网站
  • 网站是否上线我想创业做网站
  • 重庆网站建设重庆零臻科技价设计平台化
  • 网站自己做还是找人做襄阳门做网站
  • 网站开发工具简述石家庄外贸网站建设公司排名
  • 做pc端网站用什么框架做英文网站要做适合已经的
  • 闸北区网站制作电子产品网站建设模板
  • 公众号电影网站是怎么做的网站建设的职位
  • 网站建站建设公司重庆李家沱网站建设
  • 优秀企业网站建设公司一个新的网站怎么做优化
  • 备案期间怎么关闭网站会声会影模板免费网站
  • 南宁网站建设哪家公司wordpress 拖动
  • 做私活一个网站大概多少钱网站建设方案书可自行撰写
  • 揭阳企业建站服务公司易优cms怎么样
  • 石家庄做网络科技公司杭州seo薪资水平
  • 环球设计网站网站建设教程哪家公司好
  • 南宁网站建设贴吧网站备案网址
  • 网站的用户体验网站设计用处
  • 顶尖网站建设做网站需要什么基础
  • 网站制作推荐新鸿儒企业网站推广名词解释
  • 江苏建设信息网站有时候打不开哈尔滨市政建设工程
  • 一个主体可以备案几个网站wordpress 启动
  • 公司做网站的费用门户网站建设要求