- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 CompletionService的使用分页查数据,写入excel
背景:商户中心对账单文件下载。产品需求:商户对结算明细的数据2.5w分一个文件。个人2.5w数据在一个excel文件中,不会导致打开文件慢,但是数据在写入excel只能多线程。对于文件的导出主要是防止数据在内存中大量存在 不能及时的写到磁盘,故去和产品沟通一把。建议将数据分2k条写入一个excel文件,数据获取从mysql也是这个数据量级去分页查询。理论上会合理些,沟通后意见并未采纳(一般都挺...
2019-12-10 16:11:43
476
原创 mybatis typehandler的使用
背景:最近在做商户中心清算明细的数据生成,文件中用了两个枚举数据,以及金额的显示都需要按特定的金额来展示小数位或者取整。。。。笔者想通过在数据层做相关数据的转换,mybatis中提供typehandler刚好符合改需求。springboot添加注册handler的扫描地址,在application.properties中添加配置mybatis.type-handlers-package=...
2019-12-02 10:13:22
871
原创 扫码登录模拟IO
在钱包的项目中有扫码支付功能,功能虽然不是我去实现,但个人还是对该功能挺感兴趣的,故也私下去查阅了相关资料。方案大致为:具体实现为: 1.通过tomcat8的websocket长连接实现的。效果不是很理想,主要原因是websocket长连接占用连接。 2.非阻塞轮训的方式,但是经过测试这个方案和大厂的实现还是有一定的出入。 1)定时器在c...
2019-09-24 13:38:16
480
原创 apiversion就近调用(接口多版本)
业务背景: gateway多版本接口,在被第三方调用是发现传入的apiversion传错了,不能与代码中apiversion对应,导致调用了最老的版本接口。基于这个问题,我们准备使用apiversion就近向下调用。实现步骤:项目启动统计所有接口对用的版本号到redis(不考虑redis服务不可用的情况),利用过滤器过滤出请求header的apiversion,通过比对将reques...
2019-08-30 11:47:52
3952
原创 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
217
原创 策略模式的使用
背景: 最近做交易对账文件的解析,需要根据不用的渠道解析不同的excel。由于解析渠道比较多,文件中的内容解析内容比较多,导致具体渠道解析的代码块也多。通过if()else()逻辑判断来处理的话,代码不够优雅。。。那么通过策略处理优化该问题。策略接口方法的定义package com.cn.strategy;/** * 策略解析方法定义 * @author zcj * *...
2019-08-15 14:24:13
191
原创 mysql标量子查询分析优化
在做结算的业务组件是发现其他开发有在for循环中做select查询。private List<TSettleCycleResponse> buildCycleListToResponseListForSearch(List<TSettleCycle> cycleList){ List<TSettleCycleResponse> responseLi...
2019-02-21 10:16:42
691
原创 mybatis 一对一 查询结果集
我们在mybatis 做关联的时候,需要放回两张表里面的字段,一般在sql中 对列名称取别名。那么有没有一种不用取别名的方式去做呢??第一种使用mybatis的association标签代码如下mapper.xml<resultMap id="BaseResultRefMountMap" type="com.jollycorp.settle.dal.dto.TSettleCyc...
2019-01-25 20:20:16
344
原创 springboot @Async使用
使用Async标签前需要springboot的启动类上使用@EnableAsync开启异步。在业务方法上添加@Async 该方法返回的类型必须是Object或者void。package com.cn.zcj.controller.message;import java.lang.reflect.InvocationTargetException;import java.lang....
2019-01-22 19:59:46
1364
原创 表单提交 form选择
很久没写前端代码了,都有点生疏了。之前是将parent的form 提交,跳转到adeny的渠道页面。这样容易导致我们H5对页面不可控,用户不能回退。修改前 页面代码<!DOCTYPE HTML><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>3D ...
2018-12-12 11:27:25
545
原创 泛型T
/** * 将任意类型转换成字符串 * @param value * @param <T> * @return */ public static <T> String beanToString(T value) { if(null == value) { return null; } Class<?> clazz = v...
2018-11-29 15:44:30
124
原创 jdk 8 stream 使用
通过反射获取对象属性值,利用stream 判断是否为空public static void main(String[] args) { VerifyBankcardDTO verifyBankcardDTO = new VerifyBankcardDTO(); verifyBankcardDTO.setBankCardNo("123456"); verifyBankcardDTO...
2018-11-27 17:46:34
241
原创 redis setnx 锁
/** * 买家扫jp支付动态码 * @param scanQRCodeRequest * @return */ @SuppressWarnings("unchecked") @Override public ScanQRCodeResponse scanQRCode(ScanQRCodeRequest scanQRCodeRequest) { //根据tradeN...
2018-11-26 21:15:41
596
原创 解决request body的内容,只能获取一次的问题
背景:通过过滤器做埋点数据。过滤器代码:package com.xx.xxxx.client.filter;import java.io.IOException;import java.net.URLDecoder;import java.util.Arrays;import java.util.Date;import java.util.HashMap;import ja...
2018-11-09 15:35:53
5662
原创 RSA加验签、加解密
apollo读取本地配置,修改C:\opt\settings目录下的server.properties将env从DEV(开发环境)切换到(LOCAL)本地修改C:\opt\data\jp-cashier\config-cache目录下注:下图文件在第一次连接apollo就会在本地缓存服务器上的配置将 valid.sign 属性设置为true 即开启验签 公私钥保存方...
2018-11-09 15:16:31
514
原创 junit+MockMvc/OkHttpClient 单元测试
1.基础类的封装 post方式package com.xx.wallet.client.controller.base;import org.springframework.http.MediaType;import org.springframework.test.web.servlet.MockMvc;import org.springframework.test.web.ser...
2018-11-09 14:56:20
1894
2
原创 关于MappedByteBuffer占用内存和文件关闭
问题:MappedByteBuffer内存占用和文件关闭等不确定问题,被MappedByteBuffer打开的文件只有在垃圾收集时才会被关闭。业务场景定时任务:操作文件scheduExec.scheduleWithFixedDelay(new CreateCPWordToFSExecutorTask(), 0, PERIOD_DAY, TimeUnit.MILLISECONDS);//
2017-08-04 10:15:14
2849
bootstrap-treeview以权限作为demo
2017-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人