java
文章平均质量分 89
Young~^_^
代码搬运工
展开
-
Tomcat IDEA源码调试环境搭建
Tomcat IDEA源码调试环境搭建前言前段时间把tomcat的源码下载到本地,计划看看tomcat源码,了解一下其基本原理。但是,由于种种原因半途而废了。最近突然想搭建一下源码调试环境,发现网上许多文章都无法成功运行,最终参考多篇文章,使项目可以运行,做一下笔记进行记录。1. 采坑记录以tomcat8.5.x为例,笔者是从github上获取的tomcat源码,但是tomcat的源码是通过ant构建的,idea直接打开后,把java目录标记为Sources Root,test目录标记为Test S原创 2020-10-05 00:59:58 · 891 阅读 · 2 评论 -
基于Guava、RocketMQ的事件主线
基于Guava、RocketMQ的事件主线前言人间四月芬芳尽,产品测试一体化。2020必将是被裁入史册的一年,为了应对疫情,我司某某部门顺应开源节流号召,推出产品测试一体化体系,好多测试小伙伴纷纷下岗。回归正题,去年在老大推动下,开始采用领域驱动的方式进行开发,领域驱动有一个很重要的概念是:领域事件。领域事件是为了解耦代码,对于传统的MVC 3层结构,个人觉得也可以合理使用事件。对于事件,Sp...原创 2020-04-11 16:53:15 · 14972 阅读 · 0 评论 -
Spring Security Oauth2:RedisTokenStore(二)之JSON序列化
RedisTokenStore:Json序列化一. 前言Spring Security Oauth2 存储Token的方式有多种, 比如JWT、Jdbc(数据库)、Redis等,但是对于一个大型的分布式服务应用,Redis存储方式应该是最佳选择。二. 问题我们使用默认的Redis存储方式,序列化到到Redis的数据如如下所示的的结果:图1这样数据,十分不直观,我们能不能把它们序列化成J...原创 2020-02-26 01:24:51 · 34528 阅读 · 11 评论 -
一种短ID生成策略
一种短ID生成策略一、背景最近公司一个项目中存在一个业务场景,类似在美团上下单,去商户消费确认消费时,用户需要向商家提供一串编码来作为用户到店消费凭证,这个码我们称之为“核销码”。这个核销码需要具有这样特性:1.不能太长;2.具有一定随机性;3.具有一定的复杂度以免被太容易被伪造 4.不能重复。Snowflake算法可以在分布式环境下生成不重复的ID,百度改造后的Snowflake生成的Lon...原创 2019-12-10 18:05:14 · 29402 阅读 · 3 评论 -
Spring Cacheable(Redis)扩展实现注解式TTL
一、背景我们在项目当中经常要使用redis作为缓存,可选择的方式有:1)编程方式 2)注解方式1. 编程方式jedisredisTempateredisson…2. 注解方式spring cache系列注解通过切面自定义注解实现由于spring @Cacheable提供了多种缓存实现,有的缓存是不支持ttl的,因此@Cacheable注解当中是没有设置ttl参数的,Red...原创 2019-11-05 16:46:23 · 28577 阅读 · 4 评论 -
算法之BTree(Java版)
package com.github.rxyor.example.algorithm.btree;import java.io.Serializable;import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.Map;import java.util.O...原创 2019-09-28 14:45:53 · 27487 阅读 · 0 评论 -
简化Httpclient使用
简化Httpclient使用背景传统的请求方式笔者的请求方式使用背景 工欲善其事,必先利其器。最近笔者的产品又对我提出了很多的非分的需求,从数据库没有的字段也非要我导到Excel里。几千条数据,让我一个一个去查,笔者每天加班到死,手里一堆活,于是乎跟产品开始撕X。虽然表面上产品像我的死党一样,但是毕竟几千条数据,也不好查。善良的我,准备把导出的数据用java导入内存,然后用Httpclien...原创 2019-07-18 00:09:05 · 26055 阅读 · 2 评论 -
基于Redis的延时任务队列
基于Redis的延时任务队列一.背景二.整体构架设计思路构架图如下:三.代码类图DelayJob(任务详情)WaitQueue(延时队列)ReadyQueue(就绪队列)Scanner(扫描线程,轮训任务)四.使用Maven依赖spring mvc中使用一.背景 笔者先前遇到了一个订单超时关闭的问题,首先就排除了:起一任务轮训数据库的方案,太耗资源,也增加DB的负担。查阅了一些资料,Rock...原创 2019-07-17 16:38:54 · 30181 阅读 · 3 评论 -
Java 5行代码搞定Excel导入导出
Java 5行代码搞定Excel导入导出场景使用创建表格映射对象导出演示导入演示引入mavengithub场景在工作中,导出Excel的场景经常出现,比如管理后台导出的功能、批量订正数据库等,在这些场景中的表格数据往往对应数据库的一条记录,表格格式十分简单。但是,类似导入导出都要用不同的代码实现。产品经常给笔者一个Excel表格数据,导入到数据库。每次都要写一堆功能、流程类似的导入导出代码,十...原创 2019-07-15 13:16:57 · 25622 阅读 · 2 评论 -
Maven公共中央仓库发布自己的Jar包
#中央仓库发布jar包流程原创 2019-05-31 15:25:38 · 27530 阅读 · 3 评论 -
Mac os mysql数据库中文乱码解决
Mac os mysql数据库中文乱码解决问题描述: 再使用jdbc、mybatis等框架时,往数据库插入数据后,用Navicat等工具查看发现,原来的中文变成了乱码。1. 问题如下 sqlSessionFactory = SqlSessionFactoryUtil.getSqlSessionFactoryInstance(); userInfo = new U...原创 2018-12-04 00:55:26 · 13039 阅读 · 1 评论 -
字符串拼接之String、StringBuilder、StringBuffer
字符串拼接之String、StringBuilder、StringBuffer在写Java代码的过程中,我们经常会用到字符串的拼接,但是你知道他们的区别?废话不多说,直接上测试代码。一. 效率比较1. String拼接代码 public static String testString(int appendTimes) { String str =...原创 2018-08-26 23:43:08 · 13057 阅读 · 0 评论