- 博客(62)
- 资源 (11)
- 问答 (1)
- 收藏
- 关注

原创 个人收款的实现方案
最近出于个人需要折腾了一套微信免签支付的个人系统,下面介绍一下整体的一个实现方案由于微信本身不提供免签的支付api,因此个人若想要实现免签支付,那么只能通过监听微信收款通知来实现了,因此整个系统的实现部分分为 收款服务端和监听客户端来实现。
2022-10-10 14:31:46
1870
1

原创 m3u8.sqlite转mp4(txkt,文末附程序下载地址)
中秋节放假,本想好好休息一下,女朋友说手机里下载了的腾讯课堂的课程能不能够传到电脑上面去,因为手机的空间不够了,我心想这不是很简单吗。。果然,事情没我想的那么简单,找到了腾讯课堂的视频缓存目录/Android/data/com.tencent.edu/files/tencentedu/video/txdownload/发现里面的文件格式全部都是 xxx.m3u8.sqlite,并不是我们常见的可播放文件于是转而百度搜索了一下如何把.m3u8.sqlite 转为mp4,在这片文章上面找到了可行的方案
2021-09-23 11:38:11
13322
40
原创 基于mybatisplus 的SQL拦截器实现关联查询
由于项目中经常会使用到一些简单地关联查询,但是mybatisplus还不支持关联查询,不过在看官方文档的时候发现了mybatisplus的SQL拦截器(其实也是mybatis的)就想着能不能在SQL执行的时候做一些处理以至于可以支持关联查询,于是就动手开始了,目前还只是一个初步的demo,但是一些基本的关联查询功能经过验证是没有问题的环境信息jdk: 1.8springboot: 2.3.4.RELEASEmybatisplus: 3.4.2lombok:1.18.12代码设计代码涉及四个关键
2021-06-02 15:12:04
2022
19
原创 Myers差分算法
本文参考了文章: 简析Myers在参考文章中我对Myers差分算法有了一定的理解,但是在代码实现的过程中还是会遇到很多问题,而作者对源码的解释比较少,因此我着重于对实现过程做一个分析。概述我把代码的实现分为了三个部分:绘制编辑图生成snake回溯snake绘制编辑图下图是原论文里面的编辑图,我们需要吧圈起来的点对应的保存下来,保存的方式类似下面的表格在这张表格里面表示了k线和步数d之间的关系具体的代码实现可以参考论文里面的伪代码 private static void my.
2021-05-28 20:47:39
923
原创 JAVA实现基于LCS(最长公共子序列)的文本比对
最近因为项目需求需要实现一个文本比对的功能,自然的就想到了git的文本比对功能,于是网上查阅了一些资料,看到了一个关键字(最长公共子序列),感觉又回到了大学刷题的时候了。最长公共子序列引用LeetCode第1143题的描述给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,“ace”是 “abcde” 的子序列,但
2020-07-24 16:59:44
907
2
原创 filebeat里如何指定kafka的分区
文章目录什么是filebeat安装filebeat配置文件解读输出日志到kafka如何输出到不同的主题如何输出到指定的分区如何获取真实的分区如何解决hash冲突什么是filebeatFilebeat是本地文件的日志数据采集器,是使用golang语言编写的,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引、kafka等。带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格
2020-06-24 13:51:30
3584
5
原创 使用Kettle进行数据同步(增量)
文章目录kettle介绍kettle安装kettle使用使用kettle同步关系型数据库数据(MySQL示例)1. 创建一个转换2. 选择表输入3. 格式转换4. 执行脚本5. 创建job使用kettle同步NoSql数据(MongoDB示例)创建转换时的注意事项MongoDBInput怎么创建job的创建如何在Linux上面运行已经创建好的job?1、把创建好的job传输到Linux机器上面2、编辑kjb文件3、执行任务kettle介绍Kettle 是一款国外开源的 ETL 工具,纯 Java 编写
2020-06-11 09:44:30
6651
原创 Redis 的常见问题汇总
文章目录在项目中如何使用缓存的?缓存使用不当会有哪些后果?Redis都有哪些数据类型?使用场景是什么?Redis的线程模型是什么?为什么单线程还快?Redis的缓存过期了会立即删除吗?Redis内存满了Redis会怎么做?如何实现一个LRU算法如何保证Redis的高并发、高可用主从复制的原理是啥?哨兵机制的原理是啥?Redis的持久化机制有哪些?RDB和AOF的优缺点?Redis的集群工作原理是什...
2020-05-05 21:03:34
1635
1
原创 dubbo官方示例笔记
目录直连提供者只订阅只注册静态服务多协议多注册中心同一个服务注册到不同的注册中心不同服务不同注册中心分开引用不同注册中心的相同服务服务分组多版本异步调用事件通知隐式传参未完待续。。。。。。直连提供者通常我们称之为点对点链接作为消费者 我们如果需要直连一个服务,可以在配置文件里面这样写服务端暴露服务<!-- 省略部分 --> <!--服务发布的配置,需要暴露的服务...
2020-05-02 22:25:12
416
原创 消息中间件常见问题汇总
什么是消息中间件?消息中间件是可以用来进行跨系统通信的一个软件,提供了可靠的异步通信机制。目前常见的消息中间件有哪些?目前常见的消息中间件有四种ActiveMQActiveMQ是Apache开源的一款使用java编写的基于JMS规范的消息中间件,不过目前官方的维护似乎变得特变少了RabbitMQRabbitMQ是一款开源的使用ERLang开发的基于AMQP协议的消息中间件,社区活跃...
2020-05-02 22:21:57
786
原创 JVM常见问题汇总
什么是JVM?jvm全称是java virtual Machine,是java跨平台特性的保障,java程序被编译成为字节码文件之后都会放到虚拟机上面来执行,同时还提供了对java程序的内存管理功能。那java虚拟机里面内存区域是怎么划分的?在java中,内存区域会被分为 堆,栈,方法区三个大块以及程序计数器,在堆里面又会分为 年轻代【Eden区,s0区,s1区】老年代,栈又被分为虚拟机栈和...
2020-05-02 16:25:53
923
原创 基于Docker的ELK日志采集系统搭建
目录ELK的概念安装docker-compose编写docker-compose.yml执行build脚本创建配置文件启动容器安装filebeatfilebeat 配置字符编码配置多行合并配置logstash配置完成最后说一点ELK的概念ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。其中Elastics...
2020-04-22 12:55:50
1443
原创 使用Docker和DockerCompose搭建RabbitMQ
目录安装docker-composedocker-compose.yml官方示例开始搭建编写docker-compose.yml启动MQ集群搭建队列镜像安装docker-compose下载curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname...
2020-04-22 12:54:21
1959
原创 RabbitMQ发布者保证消息的可靠性
发布者怎样保证消息的可靠性rabbitMQ为我们提供了在生产者端来保证消息的可靠性的一系列方式包括以下几种:事物方式事务的实现主要是对信道(Channel)的设置,主要的方法有三个:channel.txSelect()声明启动事务模式;channel.txComment()提交事务;channel.txRollback()回滚事务;在发送消息之前,需要声明 channe...
2020-04-18 12:30:28
441
2
原创 RabbitMQ三大交换器的使用
交换器声明其中 exchange为交换器名称type为交换器类型,direct还是Fanout还是topicdurable为交换器持久化参数,为true标识持久化 Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable) throws IOException;队列声明qu...
2020-04-18 12:29:24
226
原创 RabbitMQ基础概念和入门使用
文章目录什么是RabbitMQ为什么要使用RabbitMQAMQP协议什么是AMQP协议RabbitMQjava客户端的使用几个基本概念连接信道生产者消费者交换器,路由键,队列虚拟主机交换器类型简单的消息生产和消费什么是RabbitMQRabbitMQ是一个由ErLang语言编写的实现了AMQP(高级消息队列协议)的开源消息中间件 。RabbitMQ 支持消息的持久化、事务、拥塞控制、负载均衡...
2020-04-18 12:27:33
236
原创 centos 创建swap分区
1、查看是否有swap分区cat /proc/swaps2、创建一个分区 dd if=/dev/zero of=/data/swap bs=512 count=8388616大小为bs*count=4294971392(4G);3、制作swap分区mkswap /data/swap4、查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60查看:...
2019-10-14 12:04:19
791
原创 yum 安装GitLab
用户名 : root 密码 :********1、安装ssh :yum install -y curl policycoreutils-pythonopenssh-server2、将SSH服务设置成开机自启动,安装命令: systemctl enable sshd3、启动ssh systemctl start sshd4、添加http服务到firewalld,pemmane...
2019-10-14 12:02:12
523
原创 centos7 环境下的docker安装
1、查看内核版本,docker要求内核必须高于3.1.0uname -r2、更新yum包yum update3、如果有安装过旧版本,需要先卸载旧版本yum remove docker docker-common docker-selinux docker-engine4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicema...
2019-10-14 11:59:58
115
原创 mysql5.7 安装(yum)
1、 下载mysql源 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm2、 安装mysql的yum源 yum localinstall mysql57-community-release-el7-11.noarch.rpm3、 安装mysql yum install mysql...
2019-10-14 11:56:41
545
原创 redis自动安装脚本(源码安装)
Redis 作为一个热门的缓存工具,相信很多人都会使用它,但是安装起来确是一个麻烦事,特别是在内网环境下,只能使用源码安装的方式,所以这里我写了一个安装脚本,可以一键安装redis,包括集群搭建首先我们把安装包解压得到如下文件然后我们使用命令修改一下脚本的属性将上面的文件拷贝到尼恩Linux机器上面用vim打开该sh文件,输入::set ff回车,显示fileformat=d...
2019-10-11 16:44:44
330
原创 springboot中优雅的使用websocket通信(分布式)
关于什么是websocket以及为什么要使用websocket我这里就不去描述了,可以看一下知乎上的这个回答WebSocket是什么原理好,我们直接进入主题:在Springboot中优雅的使用websocket通信一、理解需求例如我们现在有一个需求:站内消息自动刷新1、消息是谁来发送?在我们的系统里面,每一个用户的某一些操作都会给对应的处理人发送消息。2、谁来处理消息?对应的处理人...
2019-09-19 11:04:31
5377
10
转载 ES(elasticsearch)搜索引擎安装和使用
本文章为转载文章,如要转载标注出处 大数据时代,搜索无处不在。搜索技术是全栈工程师必备技术之一,如今是开源时代,数不尽的资源供我们利用,如果要自己写一套搜索引擎无疑是浪费绳命。本节主要介绍搜索引擎开源项目elasticSearch的安装和使用请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址为...
2019-03-31 23:18:43
12717
2
原创 Spring容器里面 Bean的创建与Bean的生命周期
在工作或者学习中我们经常会使用spring的依赖注入来创建对象,并且将对象交给IOC容器去管理。那么spring究竟是如何为我们创建bean,以及是如何管理bean的呢?bean的创建我们可以看AbstractApplicationContext类中的refresh方法,spring在容器创建完成之后会调用refresh方法来初始化、刷新容器里面的bean:这里我们把这个方法抠出来看看 @...
2019-03-31 21:13:31
1691
1
原创 AQS 启发--自己实现一个ReentrantLock的一部分(独占式非公平锁)
ReentrantLock什么是ReentrantLock ?ReentrantLock 中文翻译过来就是可重入锁,也就是同一个线程这个锁是可以重复获取的 ,synchronize关键字就是一个隐式的可重入锁。ReentrantLock 的实现原理ReentrantLock 是实现了Lock接口使得它能够作为一个锁被使用,同时他还有一个内部类同步器:Sync ,这个类继承了AQS(A...
2019-03-30 19:10:29
328
转载 Java并发之AQS详解
最近在博客园看到了一片很好的讲述AQS源码的文章,这里转发收藏一下,原文:https://www.cnblogs.com/waterystone/p/4920797.html Java并发之AQS详解 一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(...
2019-03-30 12:57:37
230
原创 java中的原子操作类
什么是原子操作?“原子操作(atomic operation)是不需要synchronized”,这是多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。在 java中怎样实现原子操作?在多线程变成的时候我们经常会需要多个线程对同一个变量(资源)进行读写操作,这要就会...
2019-03-09 14:48:22
206
转载 CountDownLatch和CyclicBarrier以及Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。以下是本文目录大纲:一.CountDownLatch用法二.CyclicBarrier用法三.Sema...
2019-03-03 14:58:14
147
原创 java多线程分而治之--Fork/Join框架
分治策略当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。二分法就是一...
2019-03-03 14:12:52
899
原创 java多线程基础
我们经常会听到或看到有人说:java天生就是多线程的。但是为什么这么说呢?可以参考这篇文章的解释Java天生就是多线程语言在你值执行一个main方法的时候其实jvm同时开启了许多的辅助线程来保证你的程序正常运行,比如清除引用对象的线程,调用对象finalize方法的线程等等。线程的一些基础概念:1. CPU核心数和线程的关系通常,线程数与CPU核心数的关系是1:1,但是当微软引入了超线程技...
2019-02-24 16:36:13
432
原创 利用注解+反射优雅的实现通用Excel导入导出
日常在做后台系统的时候会很频繁的遇到Excel导入导出的问题,正好这次在做一个后台系统,就想着写一个公用工具来进行Excel的导入导出。一般我们在导出的时候都是导出的前端表格,而前端表格同时也会对应的在后台有一个映射类。所以在写这个工具的时候我们先理一下我们需要实现的效果:导出方法接收一个list集合,和一个Class类型,和HttpServletResponse 对象导出是可能会有下拉...
2019-01-27 21:57:37
3254
原创 使用动态代理实现AOP
最近正在做一个薪酬核算系统,本来已经做好了,但又有需求说XXX,XXX。。。工资项在发钱的时候不能给15号不在公司的人发,当时一想,十几二十个工资项,我要是每一个都加上这样一个逻辑那我岂不得累死?当时的项目架构是一个父类下面有N个子类,N个子类对应着N个工资项,各个子类的实例都是通过工厂模式获取的。后来仔细意向,发现这个需求如果用Spring的AOP编程不就可以完美的解决了。我只需要给需要加上...
2018-12-29 15:14:59
1355
1
原创 java多线程的使用
实现多线程的方式最常用的有两种,一种是实现runnable接口,另一种是继承thread类。 这里讲一下第一种方式来实现多线程要想用多线程实现高并发则必须要有一个主线程。 具体步骤如下 1、新建主线程类 MainProcess 在主线程中有一个与子线程进行通信的同步锁,代码中的synchronize修饰符就是为了保证被该修饰符修饰的代码只会被UI个线程执行,在执行过程中其它的线程都会处...
2018-07-03 14:00:25
227
原创 ADF 动态table以及自定义搜索的实现
最近遇到一个需求,客户希望在进行搜索的时候不要固定字段,而是他想添加哪个字段就添加哪个字段,而且搜索出来的结果的列的顺序还得与他添加的顺序一样。 其实ADF的table组件就类似一个迭代器。应该是需要遍历一个list,但是迭代器里面的元素是什么类型呢?想一下,迭代出来的一个对象就是一行,一行里面又有很多列。所以应该又是一个集合,然而每一列都有字段名和字段值,很明显是一个Map;所以table迭代的v
2017-10-23 12:08:27
448
原创 ADF使用搜索提示
ADF是一个用于快速开发的框架。它为我们提供了很多很方便的组件。包括接下来要做的搜索提示功能,在ADF里面只需要一个组件即可完成。 搜索提示就是在搜索的时候并不需要知道搜索条件的全部信息,系统根据你所给出的部分关键字查询出与关键字相匹配的一个或多个记录供你选择
2017-09-28 15:04:15
500
转载 使用自动提示行为的ADF表单自动填充
使用自动提示行为的ADF表单自动填充 - 搜索,查看,添加和/或编辑 2010年11月3日| 发贴者波格丹Petridean在甲骨文ADF | 12评论 在这个博客条目中,我们将使用af:
2017-09-27 11:38:51
1136
转载 ADF用代码实现页面跳转
概述 在ADF 11g中,Task-Flow作为应用开发的最小颗粒度,在实际的应用中发挥着重要作用。对于不同页面之间的跳转关系,可以在Task-Flow中通过Action进行指定和控制,除使用Common Component直接指定Action进行跳转外,还可以在Backing Bean中用代码实现Task-Flow中定义的页面跳转。本文将介绍如何在Backing Bean中用代码实现页面A
2017-09-06 12:15:52
584
原创 ODI(Oracle Data Integrator)基本使用教程(3)
上面已经创建好了模型,接下来就是创建项目了。 项目自定义命名,这里命名为NewProject1 项目建好后如图所示,选择知识模块,右键导入新的知识模块 这里我们可以根据项目需要选择对应的知识模块,这里我们就先选择全部 导入了知识模块之后,我们要创建过程,这是很重要的一步,因为我们数据同步的逻辑是在目标数据库用户里面临时表和目标表两个
2017-09-01 16:08:34
18294
5
RSA4096文件恢复
2016-11-18
关于SpringMVC拦截器的问题
2016-08-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人