- 博客(63)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 使用TTL实现ThreadLocal的copy——兼容二方三方包已有的ThreadLocal的场景
说明首先TTL(transmittable-thread-local)是阿里开源用于解决线程池ThreadLocal的框架,详细介绍可以到官网查看。github开源地址我写这篇文章主要是为了介绍一个冷门的使用场景————如何兼容二方三方包已有的ThreadLocal的场景。案例:我有一个二方包,用户管理用户信息代码如下,如果单线程模式,完全没有任何问题,我将用户封装到ThreadLocal对象中,需要时通过get方法进行获取。public class UserContextUtil { p
2022-01-25 15:26:06
1287
4
原创 mac微信多开
执行命令:nohup /Applications/WeChat.app/Contents/MacOS/WeChat > /dev/null 2>&1 &
2021-07-07 15:35:26
407
原创 BlockingQueue队列有哪些
1、ArrayBlockingQueueArrayBlockingQueue是一个阻塞式的队列,继承自AbstractBlockingQueue,间接的实现了Queue接口和Collection接口。底层以数组的形式保存数据(实际上可看作一个循环数组)。常用的操作包括 add,offer,put,remove,poll,take,peek。2、DelayQueue 延时队列DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从
2021-02-05 22:33:37
470
原创 mysql获取连续日期
mysql获取连续日期其中100 为获取一百天内的日期,开始时间为当天select (curdate() + interval (cast(`mysql`.`help_topic`.`help_topic_id` as signed) - 100) day) AS `DAY` from `mysql`.`help_topic` having (`DAY` <= date_format...
2020-04-16 21:00:33
1255
原创 微信三方平台component_verify_ticket数据的解密
微信三方平台component_verify_ticket信息的解析首先,接收component_verify_ticket信息然后就是最坑的,解析这个消息错误实例正确方式合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX...
2019-12-23 16:16:32
2573
8
原创 阿里云的centos启动tomcat非常慢的问题
阿里云的服务器(centos)默认没有安装嫡服务,会导致启动的时候卡个十分钟左右,看了好多博客让你修改配置,比较麻烦,干脆直接将嫡服务安装好就ok了yum install rng-tools安装rngd服务(熵服务)systemctl start rngd启动服务...
2019-10-23 15:13:21
160
原创 HttpClient 上传文件(案例:微信上传资源接口)
之前,写了一个HTTPClient的工具类,用着感觉还不错,但是用着用着发现功能不够健全,于是今天我又来做一些补充(其实就是调用微信接口的时候发现上传文件压根没写)。最后我会上传一个文件首先上传文件需要额外引入一个jar包,其他jar可以参考上一篇 <dependency> <groupId>org.apache.httpcomp...
2019-09-25 17:33:36
739
原创 AES对字符串加密解密
AES算法,不管是性能还是安全性都比较高,今天项目里用得到,就顺手写了一个Utils,感觉还不错,就贴出来,方便以后使用import org.testng.annotations.Test;import javax.crypto.*;import javax.crypto.spec.SecretKeySpec;import java.security.InvalidKeyException...
2019-09-20 17:22:10
1648
原创 mysql批量更改编码,批量修改外等
今天在搞数据库的时候反了一个错误,就是同步线上库的时候发生了很多找不到字符串编码的错误,于是有了今天的文章首先获取更改字段的语句在查询的时候并没有找到如何批量修改,所以我的想法是通过sql语句生成修改的语句,核心就是CONCAT()函数和information_schema库。concat()函数用于字符串的拼接,用该函数拼接处更改字段的sql 语句information_schem...
2019-09-04 15:17:56
760
原创 贴出一个httpUtils是基于HttpClient连接池的封装
import org.apache.commons.collections4.CollectionUtils;import org.apache.commons.collections4.MapUtils;import org.apache.commons.lang3.StringUtils;import org.apache.http.HttpResponse;import org.ap...
2019-09-03 18:59:13
742
原创 记录一个全局共享参数的实践
通过ThreadLocal实现线程内共享参数首先介绍一下ThreadLocal可以理解为java类中的一个线程局部变量,它可以维护一个变量,当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。总结来说,同一个线程从ThreadLocal获取的变量相同,不同线程从Thre...
2019-08-15 17:05:04
296
原创 Java进行ssh登录linux 后执行命令
Java进行ssh登录linux 后执行命令最近,由于维护的服务器一直重启(非本地原因),每次部署都比较麻烦。于是抽空研究了一下如果通过java进行ssh登录,并发送一些命令的方案。这里我写一个简单例子,登录,然后获取服务器时间,并打印结果收先,这次我们采用JSch来进行实现,先发核心jar(其他jar放在最后):<dependency> <groupId>co...
2019-08-15 15:49:15
2730
3
原创 @JsonSerialize被弃用
@JsonSerialize弃用spring boot中,返回json默认是包含空串的,如果我们不想让json返回null值,可以在bean上添加一些注解。@JsonInclude(JsonInclude.Include.NON_EMPTY)后面的枚举值可以为 ALWAYS,NON_NULL,//属性为NULL 不序列化,就是为null的字段不参加序列化 NON_ABSEN...
2019-06-21 11:16:26
3658
原创 见鬼的Java源码
用于收录开发过程中遇到的各种诡异的源码String.valueOf()故事情节总结String.valueOf()故事情节类型转换大家应该都用过吧,下面三种方式都是将一个实现,然后故事来了,在某个深夜,博主在某个寂静无人的公司~~奋笔疾书~~ (奋键疾程)的时候,突然一台服务器反馈了一条异常信息,异常的大改意思就是找不到一个为“null”的属性,观其代码分明已经进行了判空,但还是不停报错,...
2019-03-18 19:02:26
209
原创 随手写的一个jackson序列化java对象的类,主要区分了List和Map
引入jar<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>j...
2019-03-12 10:18:13
446
原创 LaTeX标记大全
摘自百度百科,大神勿喷一、简单的规则(1)空格:LaTeX中空格用来隔开单词(英语一类字母文字),多个空格等效于一个空格;对中文没有作用。(2)换行:用控制命令“\\”,或“ \newline”.(3)分段:用控制命令“\par” 或空出一行。(4)换页:用控制命令“\newpage”或“\clearpage”(5)特殊控制字符:#,$, %, &amp;amp;amp;amp;, - ,{, }, ^, ~...
2019-02-02 11:32:11
5803
原创 matplotlib在pycharm中不现实(实际上是不更新)的解决方法
matplotlib在pycharm中不现实(实际上是不更新)的解决方法今天在使用matplotlib做数据可视化的时候,先显示了一些数据(这里我不将我真实的代码展示,在一个新的py文件中模拟了一个案例),然后继续更新数据,结果更新的数据并未生效,仍旧显示为show()函数时的数据,,,神器的是在idle中可以正常显示import matplotlib.pyplot as pltimport...
2019-01-09 23:27:13
2402
原创 java.io.IOException: 文件名、目录名或卷标语法不正确。
今天在做文件操作的时候保存文件是突然发现这个错误,,,郁闷了很久,调用System.out.println(file.getPath());打印出来的名字很正常没有什么非法字符,但就是早不到为何报错,然后就打印了一下System.out.println(file.getAbsolutePath());终于发发现了问题,打印出来的额消息为O:\IdeaProjects\BookMangen\book...
2018-05-01 01:17:43
17171
4
原创 elasticsearch6.2.3 安装以及配置IK 使用
虽然es在配置上要比solr简单许多,也更加灵活,基本上没有什么多余的配置,官网下载好后就可以直接使用,附一个下载地址https://www.elastic.co/downloads/past-releases注意:ES版本差异贼大,所以尽量保证版本一致 在测试中,所有的演示我均通过HTTP来请求,测试工具我采用postman首先将官方下载的ES解压一下我们可以看到如下目录(li...
2018-04-27 10:28:37
4849
3
原创 request payload数据请求方式(原生AJAX POST请求)后端获取参数错误
首先我先说明一下request payload请求时怎么发生的 我们如果从一个from中去提交post请求时,数据是以Form Data方式去提交的,即:提交的数据被封装在一个叫Form Data的请求中,后端如果是SpringMVC的话直接写一个对象接收就好了。付一个简单截图 但是最近前端更换ajax请求代码了导致后端全部参数接收不到,我仔细看请求来的参数发现,所有的参数都放在了reques...
2018-04-26 13:28:21
19689
3
原创 maven 打包war包时忽略一些配置文件
使用过tomcat的童鞋应该都知道,tomcat是支持加载外部配置文件的,所以我们生成war包时不应该将配置文件也打包到war中,那么我们该怎么排除掉配置文件呢? 我就直接发一个pom.xml中的一个配置然后边看边说 关键是产品环境是要排除的内容 在本地环境下,不会排除文件 在产品环境下,排除resources下的配置文件,保留src/main/java下的配置文件<profil...
2018-04-13 16:42:20
5922
原创 git忽略一些文件提交
我们使用git管理我们的代码时,有些系统自动生成的文件是不需要提交的,比如说:.idea中的各项文件.target生成的编译文件,*.iml配置文件,等。我们不希望在提交代码时将这些内容进行提交。 原理:git提供了一个忽略提交本地文件的配置“.gitignore”我们可以将它放在与“.git”同级目录下进行使用。 规则: 按照后缀忽略:*.iml 1)/.idea/ ...
2018-04-13 16:21:36
1336
原创 javaUtil——导出excel——单行数据模板
首先,大家可以看一下我的模板 最后一行一定是规则。 其中#index#表示自动填入序号,%XXXX%其中的XXXX是和javaBean对象对应的字符串(及和get方法对应)。 然后就会将你的数据自动写入到excel中。 注意:这里必须使用poi1.17版本1.11测试时发现缺少函数此方法暂时只对xlsx文件有效,对xls不适用(HSSFBook缺少函数,如果要适配需要手动补充复...
2018-03-29 17:42:36
1578
2
原创 一个基于python的堆树,最大堆树
什么是堆树堆树的定义如下: (1)堆树是一颗完全二叉树; (2)堆树中某个节点的值总是不大于或不小于其孩子节点的值; (3)堆树中每个节点的子树都是堆树。 当父节点的键值总是大于或等于任何一个子节点的键值时为最大堆。 当父节点的键值总是小于或等于任何一个子节点的键值时为最小堆。上图是最大堆,下图是最小堆(ps:这里借用别人的图片) 详情可参考《算法导论》查看如何得到最大堆...
2018-03-22 10:26:56
750
2
原创 一个基于Python的插入排序
最近,博主开始步入了python的这个大坑,,,不会学的太深入,只是简单地学习一下。然而,让我的第一个HelloWord程序用插入排序开始吧:import time#排序主体def sort(listNum): print("helloword") print(listNum) for i in range(2, len(listNum)): f...
2018-03-01 15:06:34
192
原创 精简的RSA——不依赖三方
提示由于该Base64使用java8的的函数,所以如果没有该函数,请重写Base64 加密解密函数。 首先,RAS是由一对秘钥组成的,分为公钥和私钥,使用场景1.数据加密 公钥交给客户端,客户端通过公钥加密数据,将加密后的数据传递给服务器,保证数据安全,服务器接收到客户端的消息后,通过私钥解密客户端的消息。2.签名认证 服务器端将要给客户发送的消息通过MD5进行...
2018-02-08 16:36:50
584
原创 MQTT断线重连
MQTT客户端:org.eclipse.paho.client.mqttv3 MQTT服务器:EMQ MQTT服务器官网:http://emqtt.com/ 如果第一次看MQTT,可以参考:http://blog.csdn.net/whb3299065/article/details/79088928 在之前的文章中我们简单介绍了MQTT的收发消息,并没有实现重连机制,我在实现重连时,发现...
2018-02-08 15:57:19
43940
20
原创 EMQ上下线消息订阅
很多时候我们的业务中需要监听设备是否上线,之前我们一直采用的两种方案,一种是设备客户端上线是自动发送一条消息;另一种是,找一个开源的服务器,通过源码监听。 最近发现EMQ的共同非常强大,会将系统信息封装成系统主题,所以我们只要订阅系统主题就可以接受到消息, 我订阅了:“$SYS/brokers/emq@127.0.0.1/clients/#”主题,其他论坛里说:“$SYS/brokers/em
2018-02-03 13:22:19
7237
1
原创 RabbitMQ收发——spring 集成
上一篇讲了通过原生的AMQP协议去读写Rabbit的方式,这次我们整合到spring中测试一下 首先依旧是连接对象:protected CachingConnectionFactory getConnectionFactory() { //创建连接工厂 CachingConnectionFactory factory = new CachingConnectionFact
2018-01-29 16:59:45
359
原创 RabbitMQ收发消息——原生API
dependency> groupId>com.rabbitmqgroupId> artifactId>amqp-clientartifactId> version>2.8.2version>dependency>首先是我们创建连接对象的函数//这里请手动填入,我是通过配置文件注入的protected ConnectionFactory getFactory() {
2018-01-29 16:47:56
1468
原创 java——util加密算法(或UUID算法)UUID,MD5,base64
闲来无事,把我用到过的加密,或主键生成策略写一下UUID public static String getUUID(){ return UUID.randomUUID().toString(); } //没有"-" public static String compactUUID(){ return getUUID().repl
2018-01-27 16:39:23
1936
原创 java工具——数字,byte[]数组互相转换
做数据测试时用到的一个工具类,实现java基本数据类型与byte数组的转换,且会自动补0,如int类型,转换后绝对是4位数组import java.math.BigInteger;import java.util.ArrayList;import java.util.List;public class NumberConvertByte { private static final int
2018-01-23 13:17:14
4107
原创 javolution.io.Struct序列化C语言数据结构
在网络传输时,我们接收到的数据都是10的形式,八个01(big)构成了一个byte字节,一个或多个byte又构成了不同的数据类型,接收到这些byte数组后,我们就需要对数组进行反序列化为java中的对象。而通过javolution.io.Struct就可以很容易的实现反序列化(序列化) 首先,我们要按照数据顺序定义结构体(java的class文件):该类型必须继承Struct,byte数组中,不
2018-01-22 16:18:42
3591
4
原创 java泛型
一、什么是泛型Jdk1.5版本后出现的新特性。用于解决安全问题,是一个安全机制 方法用声明 格式:通过在使用java提供的对象时,什么时候写泛型呢? 通常情况下在集合框架很常见,只要见到其实 中即可 好处: 1、将运行时期出现的问题,从运行时期转移到了编译时期,将运行时期的问题减少 2、避免了强制转换 集合定义:ArrayList 对象名称 = new ArrayL
2018-01-19 13:32:26
294
原创 java判断IP地址类型,以及判断是否属于同一网段
函数与提取: public static boolean isSameAddress(String resourceIp, String requestIp);判断是否属于同一网段,默认子网掩码 public static boolean isSameAddress(String resourceIp, String requestIp, String subnetMask);判断是否属于同一
2018-01-18 16:01:28
5007
原创 通过ffmpeg进行录屏直播
本来我是打算通过ffmpeg进行图片和成视频的,但是不知道什么原因编码出来后,都会只剩三秒,后来发现,可以直接通过ffmpeg进行录屏。 首先就是先下载ffmpeg。这里我将dll文件和exe文件放到了同一个目录下,避免一些麻烦。 然后就是录屏命令了,很多博客上都需要各种插件才可以,但我发现了一个命令,可以直接调用: ffmpeg -f gdigrab -i desktop out.mp
2018-01-18 10:20:05
12823
6
原创 MQTT协议初识——简单收发
第一部分:认识MQTT先来一段百度文库的介绍 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。 MQTT协议是为大量计算能力有限,且
2018-01-18 10:17:03
8478
原创 apollo安装(windows)
1、下载:http://activemq.apache.org/apollo/download.html 然后解压看到bin目录 2、配置APOLLO_HOME,APOLLO_HOME的流程与jdk流程一样,这里不演示了。 3、配置代理(create broker):在Apollo中,代理才是我们真真要运行的程序 1.新建文件夹,重命名 2.进入该文件夹的dos模式...
2018-01-18 09:33:07
2678
原创 截图录屏工具——图片组转视频流
首先我们将我们的项目拆分成两个部分,一是屏幕截图部分,二是jpg图片转AVI部分,在之后我会发出通过javaCV进行操作 不过在这个之前,我们要先安装JMF,很多博客中,总是不要求按照JMF导致不能运行,JMF是Java媒体框架,地址 还需要Jim2mov.jar Windows直接安装即可,具体可以参考博客:JMF下载和安装 这里我测试,需要将JMF下的.jar导入到项目中 所用到的资
2018-01-12 16:50:52
2974
原创 java获取第N次字符串出现的位置,StringUtils详解(判空,去空,比较,查找)
用一个工具类commons-lang3.jar 如果找不到的同学的,可以导入mavendependency> groupId>org.apache.commonsgroupId> artifactId>commons-lang3artifactId> version>3.7version>dependency>导入:import org.apache.com
2018-01-08 18:06:44
18084
2
新闻博客正文抽取
2017-09-18
quartz在window上可以运行,但发布到Linux后不能运行
2017-09-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人