笔记
文章平均质量分 89
清水雅然君
这个作者很懒,什么都没留下…
展开
-
基于ReflectASM+注解开发对象转换工具
在项目对接数据中,会遇到了对外标准和内部标准对象转换问题,需要将上报的数据对象转换为我们项目中标准数据对象,当两边数据标准一致时,比较常见的方式,就是一个标准的对象,和对接数据;或者复制对象。第一种方法,就会有长篇幅的和方法代码出现,代码不够简洁;也容易遗漏字段的赋值,代码简洁,一行代码就可以实现对象的转换。而当标准不一致时题,比如在对接文档中,性别字段为 ,而在我们标准中字段却为,对于这种问题,还是只能回到第一种方法,在代码中和,除了这两种情况外,还有上报数据类型和我们标准的类型不一致、上报数据格式为字符原创 2022-05-31 22:26:36 · 442 阅读 · 3 评论 -
项目工具:两行代码快速生成测试的数据的FakeDataMaker
开发原因ReflectASM 是一个非常小的 Java 类库,通过代码生成来提供高性能的反射处理,自动为 get/set 字段提供访问类,访问类使用字节码操作而不是 Java 的反射技术,因此非常快。在单元测试的时,需要模拟制造一些数据去测试我们代码会不会出现明显的异常(字段导致、空指针),除了自己乱编写一些测试数据以外,也会实用javafaker进行“真实数据”模拟,当然可以减少我们的代码量。如果,只是前期的简单测试,对数据的正确性并不高,使用javafaker对每个字段都进行编造,代码量还是不少原创 2021-10-11 00:14:36 · 7767 阅读 · 0 评论 -
项目工具:使用freemarker实现业务代码生成器
开发原因之前使用的开源框架里面,有个代码生成器,可以一键生成的重复业务代码(包括:controller、service、mapper、entity),虽然很好用,但是生成器属于框架定制化开发工具,要是其他项目要是想使用这个生成器,需要同时启动前后端的服务,在页面上配置表和导出的路径,这样操作就非常的不方便,需要参考了这块的逻辑,结合自己需求,基于freemarker开发了一个简单业务代码生成器Apache FreeMarker 是一个模板引擎:一个基于模板和变化数据生成文本输出(HTML网页、电子邮件原创 2021-08-02 00:42:37 · 832 阅读 · 0 评论 -
功能设计:设计一个数据同步的方案(p6spy+注解+AOP)
这个方案只完成了一个简单的demo,估计完成了80%后,由于方案的修改,这个部分功能也就作废了,打算写篇文章记录一下,大致的思路用到的两个知识点:P6Spy是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架。 通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc原创 2021-07-02 00:08:54 · 655 阅读 · 1 评论 -
功能设计:如何实现一个扫码上传附件的功能
授权码(authorization code)方式,指的是第三方应用先申请一个授权码,然后再用该码获取令牌。这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏。需求背景虽然,我们项目客户大部分为pc端操作,当客户要把手机拍中照片,要上传至系统中,如果APP没有提供专门的接口,客户需要先把照片传到电脑中,然后通过网页上传,这样比较麻烦,于是,产品便提出需要开发扫码.原创 2021-03-21 21:04:44 · 3619 阅读 · 0 评论 -
项目工具:线上“假死“问题解决(Jstack工具分析,脚本监控服务)
问题项目在正式上线后,偶发性出现项目的"假死"的问题,项目无法响应前端的请求,一开始,架构师查询到存在大量锁表的情况,去掉了一些长时间任务的更新的事务,同时提高了JVM的-Xmx和-Xms的大小,第一天虽然情况有所缓解,在第二天访问量上去后,还是出现了假死的问题。于是,在顶着客户在抱怨的情况下,我使用Jstack保存了当时的堆信息,分析当时项目的线程情况。jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息原创 2021-03-01 23:35:52 · 663 阅读 · 0 评论 -
项目重构:一行代码的背后-设计模式(模板方法+管道模式)
管道-过滤器模式的体系结构是面向数据流的软件体系结构。它最典型的应用是在编译系统。一个普通的编译系统包括词法分析器,语法分析器,语义分析与中间代码生成器,优化器,目标代码生成器等一系列对源程序进行处理的过程。人们可以将编译系统看作一系列过滤器的连接体,按照管道-过滤器的体系结构进行设计。此外,这种体系结构在其它一些领域也有广泛的应用。因此它成为软件工程和软件开发中的一个突出的研究领域。简单点的说,管道模式,整个控制的结构类似一个单链表,上个步骤将数据处理后,传递到下一个步骤进行处理,直到全部步骤处理完.原创 2021-01-09 14:35:05 · 546 阅读 · 0 评论 -
项目重构:设计模式(模板方法模式)
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。最近,在项目中,需要调用用户提供的接口发送微信模板信息,然后提供了信息模板{ "PersonnelType": "Inspector", "BusinessSysID": "0002", "UserID": "1111", "Mobile":"", "UnionID".原创 2020-12-04 00:19:55 · 414 阅读 · 0 评论