基础
我不痛,棍子痛
这个作者很懒,什么都没留下…
展开
-
CompletionService的使用分页查数据,写入excel
背景:商户中心对账单文件下载。产品需求:商户对结算明细的数据2.5w分一个文件。个人2.5w数据在一个excel文件中,不会导致打开文件慢,但是数据在写入excel只能多线程。对于文件的导出主要是防止数据在内存中大量存在 不能及时的写到磁盘,故去和产品沟通一把。建议将数据分2k条写入一个excel文件,数据获取从mysql也是这个数据量级去分页查询。理论上会合理些,沟通后意见并未采纳(一般都挺...原创 2019-12-10 16:11:43 · 443 阅读 · 0 评论 -
mybatis typehandler的使用
背景:最近在做商户中心清算明细的数据生成,文件中用了两个枚举数据,以及金额的显示都需要按特定的金额来展示小数位或者取整。。。。笔者想通过在数据层做相关数据的转换,mybatis中提供typehandler刚好符合改需求。springboot添加注册handler的扫描地址,在application.properties中添加配置mybatis.type-handlers-package=...原创 2019-12-02 10:13:22 · 693 阅读 · 0 评论 -
mybatis 一对一 查询结果集
我们在mybatis 做关联的时候,需要放回两张表里面的字段,一般在sql中 对列名称取别名。那么有没有一种不用取别名的方式去做呢??第一种使用mybatis的association标签代码如下mapper.xml<resultMap id="BaseResultRefMountMap" type="com.jollycorp.settle.dal.dto.TSettleCyc...原创 2019-01-25 20:20:16 · 324 阅读 · 0 评论 -
mysql标量子查询分析优化
在做结算的业务组件是发现其他开发有在for循环中做select查询。private List<TSettleCycleResponse> buildCycleListToResponseListForSearch(List<TSettleCycle> cycleList){ List<TSettleCycleResponse> responseLi...原创 2019-02-21 10:16:42 · 662 阅读 · 0 评论 -
策略模式的使用
背景: 最近做交易对账文件的解析,需要根据不用的渠道解析不同的excel。由于解析渠道比较多,文件中的内容解析内容比较多,导致具体渠道解析的代码块也多。通过if()else()逻辑判断来处理的话,代码不够优雅。。。那么通过策略处理优化该问题。策略接口方法的定义package com.cn.strategy;/** * 策略解析方法定义 * @author zcj * *...原创 2019-08-15 14:24:13 · 184 阅读 · 0 评论 -
spring的监听器
最近在查看公司counter组件源码,看到有使用监听器。。。那么学习下这个设计模式。spring编程式、声明式、springboot编写event 事件类package com.cn.zcj.event;import org.springframework.context.ApplicationEvent;public class MyMsgEvent extends App...原创 2019-08-25 15:47:50 · 206 阅读 · 0 评论 -
apiversion就近调用(接口多版本)
业务背景: gateway多版本接口,在被第三方调用是发现传入的apiversion传错了,不能与代码中apiversion对应,导致调用了最老的版本接口。基于这个问题,我们准备使用apiversion就近向下调用。实现步骤:项目启动统计所有接口对用的版本号到redis(不考虑redis服务不可用的情况),利用过滤器过滤出请求header的apiversion,通过比对将reques...原创 2019-08-30 11:47:52 · 3900 阅读 · 0 评论 -
扫码登录模拟IO
在钱包的项目中有扫码支付功能,功能虽然不是我去实现,但个人还是对该功能挺感兴趣的,故也私下去查阅了相关资料。方案大致为:具体实现为: 1.通过tomcat8的websocket长连接实现的。效果不是很理想,主要原因是websocket长连接占用连接。 2.非阻塞轮训的方式,但是经过测试这个方案和大厂的实现还是有一定的出入。 1)定时器在c...原创 2019-09-24 13:38:16 · 468 阅读 · 0 评论