- 博客(116)
- 资源 (25)
- 收藏
- 关注
原创 解决数据插入到mysql时,多出一秒的问题
对象获取的时间是以带着小数的毫秒数传入数据库的,而当数据库datetime设置长度为0时,会自动根据毫秒数后面的小数进行四舍五入,会导致时间精度的缺失。当把数据库字段的长度设置为3时,数据库则会保留毫秒数的三位小数,则不会导致时间精度的丧失。比如:当创建时间是2020-04-25 22:30:50,插入mysql,发现时间为2020-04-25 22:30:51。当创建时间是2020-04-25 22:30:50.771,毫秒被四舍五入为2020-04-25 22:30:51。
2024-09-02 11:06:53
501
1
原创 宽带Github访问不了解决办法
github改hosts,文件位置:C:\Windows\System32\drivers\etc,(MAC修改在终端用命令:sudo vim /etc/hosts)选那个没有后缀的hosts文件追加下面两行:140.82.112.4 github.com199.232.69.194 github.global.ssl.fastly.net一般这样设置之后就可以访问了这个IP地址不同人不一样,附上查询方式,图中的IP复制过来就行:github.com从GitHub: Where
2022-04-24 10:21:15
2915
1
原创 logback 的详细配置与需要注意的细节
logback是在java中是用得非常多的日志框架。网上相关介绍也非常多。本篇意不在于logback如何配置,在于提醒在配置过程中容易出现的错误。如何配置也唠叨一下吧:1、导包,用1.2.3的版本<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core --><dependency> <groupId>ch.qos.logback</groupId>
2021-05-18 16:14:59
2051
3
转载 java NIO的空轮询bug 以及Netty的解决办法
这个bug是指java的NIO在linux下selector.select()时,本来如果轮询的结果为空并且不调用wakeup的方法的话,这个selector.select()应该是一直阻塞的,但是java却会打破阻塞,继续执行,导致程序无限空转,造成CPU使用率100%这个bug只出现在linux系统下,因为linux下NIO底层使用的是epoll来实现的,而java的epoll实现存在bug,导致selector出现了这种轮询为空却唤醒的情况。windows下NIO是使用的poll来实现select.
2021-01-28 11:38:06
1272
原创 java 通过main方法调试maven项目
有时候我们为了快速调试或者验证某些方法。可能需要直接使用Main方法去执行。当我们使用main方法去调试maven项目时,可能会遇到这么一个问题,就是pom.xml里面到依赖无法引进来。运行时出现依赖找不到的错误。这篇文章记录一下怎么解决这个问题,方面我们调试。直接看代码吧举个例子,用maven工程调试logback日志的打印。一、首先看看pom.xml,非常简单,就几个依赖。<?xml version="1.0" encoding="UTF-8"?><proj
2021-01-15 16:41:26
949
1
原创 java 概率工具类,比如随机立减优惠概率
开发中经常会计算概率。比如支付场景,支付100元立减0.1~1元,要在其中设置不同的概率,比如设置90%是立减0.1元,这个时候就需要用到概率工具类。废话少说,看代码,直接用:import java.util.*;import java.util.Map.Entry;/** * 随机数工具类 * * @author gogym * @version 2017年8月30日 * @see ProbUtil * @since */public final class Pr.
2020-08-13 11:47:41
1114
原创 解决websocket 报 Could not decode a text frame as UTF-8 的问题
当你使用websocket传输数据时,偶尔可能会出现下面的错误websocket Could not decode a text frame as UTF-8网上很多其他文章一上来就介绍什么是websocket,数据协议等等,对解决问题没有多大帮助。有一些文章说要改开头数字10000001等等,很多同学不知所云。下面说说个人的经验,不一定对,希望对大家有个帮助。首先如果你使用的是相对成熟的websocket框架的话,一般不会出现这个问题。而出现这个问题的原因,绝大部分是客户端和服务
2020-07-28 11:03:46
7183
6
原创 java 自定义高性能的ArrayList集合
java本身有很多集合可以用,比如 ArrayList,LinkedList、copyonwritearraylist等等。这些集合各有不同的使用场景,性能也有些差异。日常来说足够用了。本文是介绍通过数组实现ArrayList。相比jdk提供的ArrayList,性能会好一些,胜在简洁,使用方式与jdk提供的一致。直接下面看看代码吧以下代码,拿来即用/** * Licensed to the Apache Software Foundation (ASF) under one or m.
2020-07-28 10:29:48
374
原创 java ThreadPool线程池的使用,线程池工具类
实际上java已经提供线程池的实现ExecutorService。为了更方便的使用和管理。这里提供一个线程池工具类,方便大家的使用。直接看看代码:使用public static void main(String[] args) { //实例化一个固定数目的线程池。具体参考类的构造方法 ThreadPool threadPool=ne...
2020-03-30 09:24:20
1048
原创 java AES对称加密,微信aes解密,对应js aes加解密
AES是对称加密算法,顾名思义就是加密和解密的密钥是同一个。更多的详情可以先百度了解一下,这里不多介绍了。直接看代码如何使用。为了更好的兼容不同的算法,先添加一个辅助包 <dependency> <groupId>org.bouncycastle</groupId> <artifactId...
2020-03-30 09:10:43
725
原创 objectbox 在android开发中的配置和使用
介绍:ObjectBox是一个超快的面向对象数据库,专为物联网和移动设备而构建。我们为小型设备提供边缘计算,允许在本地存储和处理数据,以实现高效,快速和安全的数据管理。ObjectBox是nosql数据库,如果接触过java开发,那么ObjectBox有点类似redis。本文主要介绍一下在安卓环境下怎么使用ObjectBox。一、配置:首先在android工程的 build.gra...
2020-02-26 15:26:25
1720
原创 getty 又双叒叕更新啦,一个长得有点像netty的网络框架
getty 又双叒叕更新啦!!!本次更新主要是添加了UDP的支持。。。getty是基于java nio(俗称nio1)封装了UDP,借助getty本身的架构设计,getty udp的性能表现也非常不错基于getty良好的设计模式,getty udp的使用方式与tcp差别不大。唯一的区别就是需要指定socketChannel为UDP。默认不指定是TCP需要指定UDP的消息编解...
2019-12-18 16:55:45
922
转载 Linux下如何不停止服务,清空nohup.out文件
1.nohup.out的由来及作用用途:LINUX命令用法,不挂断地运行命令。语法:nohup Command [ Arg ... ] [ & ]描述:nohup 命令运行由Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表...
2019-11-08 14:45:24
393
原创 java spring boot 完全纯代码配置mybatis,解放xml
Mybatis是一个使用广泛的ORM框架,相信大家都使用的很熟练的。但绝大部分朋友应该都使用XML进行配置。在springboot中,为了方便或者减少xml文件的数量,也可以选择完全通过代码来配置mybatis。下面就来说说如果通过java代码配置mybatis。配置起来也非常简单,只需一个类,而且不容易出错。首先把原来配置mybatis的xml文件删除,然后添加下面这个类:通过spr...
2019-10-29 08:50:21
1312
原创 mysql解决mysql-connector-java 6+ 插入数据库时差问题
使用mysql-connector-java 6.x版本后。new Date()插入数据库的时间与国内时间有14个小时的时差。原因是mysql-connector-java 6.x版本后默认使用UTC(协调世界时)。这个时间与国内东8区时间有14个小时的时差。解决方法如下:在数据库连接URL后添加&serverTimezone=PRC PRC是可以当做是中华人民...
2019-10-18 08:33:06
488
原创 getty 一个完全基于java 实现的aio框架
目录前言说说写这个框架的原因:说说getty的特点:说说getty的性能和稳定性:如何使用:插件的使用:未完待续。。。githup地址:https://github.com/gogym/getty码云地址:https://gitee.com/kokjuis/getty前言1、getty只是本人空闲时间随手写的一个网络通讯框架,虽然本人认为这份代码写的还凑...
2019-10-01 19:48:20
2869
原创 netty4 使用SSL 安全连接,简单明了
netty是一个非常优秀的nio框架,就不多介绍啦,这里主要介绍如何在netty中开启ssl。这里使用的版本是 netty4 ,netty4内部已经实现了标准的 jdk ssl 以及openssl。很方便的就能使用。ssl的一些介绍,为何要用ssl就不累述了,百度一大堆。咱们讲究实战,直接上代码吧:一、首先肯定要导入相关的jar:<dependency> <...
2019-08-13 17:10:42
7269
2
原创 ios开发cocoaAsyncSocket与protobuf的使用swift5版本,含粘包拆包
最近搞了一下即时通讯,为了配合服务器的使用(netty4+protobuf3),在ios客户端捣鼓了一下。在ios客户端使用protobuf的资料比较少,配合cocoaAsyncSocket使用的更少,swift版本的更加少。在swift版本中有处理protobuf粘包/拆包的资料基本没有。所以分享一下,希望对一些朋友有帮助1、首先导入必要的包。这里使用了Carthage作为管理,...
2019-08-09 12:38:00
2089
原创 netty4 ip过滤器的使用(可做ip黑名单处理)
netty4的ip过滤跟netty3的区别比较大。netty3的使用方法这里不介绍了,看看在netty4中怎么做ip的过滤。从netty的文档中我们可以看到这么几个类:https://netty.io/4.1/api/io/netty/handler/ipfilter/package-summary.htmlip过滤相关的类在 io.netty.handler.ipfilter这个...
2019-07-13 13:32:15
3891
1
原创 java使用中Protobuf3 Any类型转json (解决Cannot find type for url: type.googleapis.com)
Protobuf是谷歌出品的一个数据协议框架,跟json相比,有独特的优点,这里不多说。Protobuf3相比Protobuf2有很多改进。其中一个就any类型。有点类似java的泛型。也添加了Protobuf与json的互转,非常方便如何转换json:先添加jar支持,protobuf 转json的工具类在protobuf-java-util这个包中,通过maven引用进来 &...
2019-07-03 09:52:05
5373
2
原创 (centos7)阿里云 ECS中毒后CPU一直占用100%的解决过程
这两天发现部署在阿里云上的ECS服务器的CPU一直占用100%,一开始以为只是偶然的,没在意。后面发现CPU一直满载,这不应该呀。于是赶紧看看是怎么回事。使用 top 命令查看cpu使用情况:发现有一个 vTtHH1 的进程占用 200%的cpu,这是什么鬼,貌似哥不曾相识啊。于是乎,通过命令 :cd /proc/32676 -> ll 查看这到底是什么玩意,...
2019-05-15 15:58:58
6673
1
原创 自定义注解,mybatis通过拦截器执行insert、update sql自动添加当前时间。
开发过程中,会经常执行insert、update语句。大部分数据库表结构都有类似create_time这样的时间列,用于记录创建时间。很多朋友通常会为这个列设置一个默认值、或者通过代码setTime()去设置。这样做是没有问题的。这里主要提供注解的方式去达到这个目的。有利于提高开发效率。1、先添加两个自定义注解类:import java.lang.annotation.Eleme...
2019-04-11 08:58:14
9561
原创 mybatis 通过拦截器打印完整的sql语句以及执行结果
开发过程中,如果使用mybatis做为ORM框架,经常需要打印出完整的sql语句以及执行的结果做为参考。虽然mybatis结合日志框架可以做到,但打印出来的通常都是sql和参数分开的。有时我们需要调试这条sql的时候,就需要把参数填进去,这样未免有些浪费时间。此时我们可以通过实现mybatis拦截器来做到打印带参数的完整的sql,以及结果通过json输出到控制台。直接看代码和使用方...
2019-04-02 15:05:27
8610
6
原创 JAVA采用 Luhm 校验算法来生成条码(银行卡号),防止被篡改
开发过程中,经常会生成一段条码来做为一个标识,比如生成几个商品的条码。但如果只是简单的使用几个随机数来标记,没有任何的校验过程,有时可能不太安全。这里介绍一个简单使用的条码校验方法。这样如果条码被修改过,就无法通过校验,从而达到提高安全性的目的。这里主要使用Luhm 校验算法。Luhm 校验算法广泛用在银行卡号的生成,校验等场景上,这里不多说了。简单介绍校验的过程:1、从最后一位数字开...
2019-02-19 16:24:44
1610
原创 解决通过阿里云SLB多层代理后,spring boot工程获取不到客户端真实IP的问题
现在很多服务都部署到阿里云上,免不了使用SLB做负载均衡,然后又通过了nginx等代理。如果这个时候你想获取客户端访问的真实ip,你会发现一直拿到的是127.0.0.1 下面一起来解决这个问题。现在来解决一下:首先:配置一下SLB监听。确定获取真实IP已经开启,一般默认都是开启的,如图:二、配置nginx转发ip信息,基本都有这段配置:proxy_set_header Ho...
2018-12-18 17:37:21
3248
1
原创 spring boot 解决Tomcat 报 The valid characters are defined in RFC 7230 and RFC 3986 的问题
tomcat 8.0以后对请求URL做了严格的过滤就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。这可能会遇到一个问题,比如参数中传了一段j...
2018-12-18 17:09:35
15856
13
原创 log4j2 的配置与使用
简单说一下log4j2的改进,引用一下百度上的:1、丢数据这种情况少,可以用来做审计功能。而且自身内部报的exception会被发现,但是logback和log4j不会。2、log4j2使用了disruptor技术,在多线程环境下,据说性能高于logback等10倍以上。3、(garbage free)之前的版本会产生非常多的临时对象,会造成GC频繁,log4j2则在这方面上做了优化,减少...
2018-12-01 17:30:18
1554
原创 java 代码实现encodeURIComponent和decodeURIComponent,解决空格转义为加号的问题。
java自带有一个 java.net.URLDecoder和java.net.URLEncoder。通过这两个类,可以调用encode()或者decode()方法对字符串进行URL编码。那既然有了,为什么还要自己实现一套呢?主要原因是Jdk中并没有提供encodeURIComponent和decodeURIComponent的方法。这两个方法作用其实跟encode()和decode(...
2018-11-16 15:51:42
21780
1
原创 利用Thumbnails,java图片压缩,转换工具类
Thumbnails是谷歌的一个图片压缩处理开源库。利用这个库可以非常容易的做图片处理。这里整理了一些方法。直接看代码吧。先添加jar支持<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator --> <dependency> <groupId>net.coobird...
2018-11-10 10:23:50
3002
原创 socket.io 在java与微信小程序上的应用
最近有一个这样的功能场景。用户操作完成后。服务器主动通知另一个客户端显示结果。这里涉及一个服务器推的这么一个东西。需要实现这么一个功能,对比了几个实现方式。最终选择了socket.io。1、commet,最初想到这个功能要求不高,想简单的通过commet方式实现就算了。但考虑到commet已经是比较老旧的做法了,其中有很多弊端,所以放弃了。2、netty。netty是非常棒的java ...
2018-11-09 19:00:56
3510
原创 微信小程序 RSA 加密、解密,分段加解密
虽然说微信小程序本身有自己的安全机制,但我们有时候业务需要。需要自己做一层加密,AES比较简单,就不说了。这里说一下RSA非对称加密。一般网上搜的都不全,要么就没有分段加解密。这里做一下整理,方便大家使用。 主要添加两个方法:function RSAEncryptLong(d){ var k = this; var maxLength = (((k.n.bitLength...
2018-09-29 09:44:27
3071
5
转载 如何实现微信抢红包算法?
发出一个固定金额的红包,由若干个人来抢,需要满足哪些规则?1.所有人抢到金额之和等于红包金额,不能超过,也不能少于。2.每个人至少抢到一分钱。3.要保证所有人抢到金额的几率相等。小灰的思路是什么样呢?每次抢到的金额 = 随机区间( 0,剩余金额 )为什么这么说呢?让我们看一个栗子:假设有10个人,红包总额100元。第一个人的随机范...
2018-08-30 17:42:58
1356
1
原创 okhttp在java中的使用
OkHttp 库的设计和实现的首要目标是高效。这也是选择 OkHttp 的重要理由之一。OkHttp 提供了对最新的 HTTP 协议版本 HTTP/2 和 SPDY 的支持,这使得对同一个主机发出的所有请求都可以共享相同的套接字连接。如果 HTTP/2 和 SPDY 不可用,OkHttp 会使用连接池来复用连接以提高效率。OkHttp 提供了对 GZIP 的默认支持来降低传输内容的大小。OkHtt...
2018-08-02 15:50:06
5550
1
原创 解决spring cloud Feign远程调用服务,添加headers解决拦截器拦截问题
使用spring cloud 做saas服务器时,经常会通过Feign调用远程服务。有时候我们的远程服务可能做了某些权限验证。需要验证header或者token什么的。如果某没有token,可能会被阻止调用。那如何添加token呢。如果每个方法都手动设置headers,那未免太麻烦。可以通过一个切面,自动帮我们添加请求header。直接上代码:@Configurationpublic class...
2018-06-12 08:51:28
15009
2
转载 阿里巴巴Java开发手册及Java代码规约扫描eclipse和IDEA插件
《阿里巴巴Java开发手册》是阿里巴巴技术团队的集体智慧结晶和经验总结,经历了大规模的实战不断完善,主要由编码规约、异常日志、单元测试、安全规约、工程结构、MySQL数据库六部分组成。俗话说得好无规矩不成方圆,无规范不能协作,相信大家在编程时都不喜欢维护别人写的代码,代码过度个性化使得维护起来非常费力,该手册让Java开发者能够提升协作效率。该规范也并非必须的,可以给我们一个参考作用。《阿里巴巴J...
2018-06-11 08:41:51
1220
原创 jsencrypt.min.js通过JSEncrypt分段加密解密
最近捣鼓了一下js RSA前端加解密。是通过用jsencrypt.min.js来实现的,这个js本身自带了RSA公钥加密和RSA私钥解密。对一些短字符串加解密足够。但如果加密的和解密的内容比较长的时候,就会有问题。所以要进行分段加解密,参考了网上的一些例子。多少有点问题。所以自己捣鼓了一下。直接看看代码吧需要注意一个问题:如果与JAVA后台数据交互。某些中文字符可能因为编码原因会乱码,可以加密...
2018-05-22 15:43:58
27976
7
原创 java mybatis 多数据源,动态数据源 使用
做项目,有时候需要一个工程里配置多个数据源。网上也有很多啦。我这里写一个比较全,实现相对优雅的方式吧。使用mybatis的时候,可以不用多个DAO。一个DAO全部搞定直接上代码:1、先添加需要的数据源配置# 数据源,默认配置Druidspring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.dr...
2018-04-27 11:03:25
894
原创 解决 java.io.FileNotFoundException: file:/usr/project/xxx.jar!/BOOT-INF/classes!/conf/config.js
使用spingboot开发,在工程根目录中添加了一个配置文件,在IDE中通过this.getClass().getResource("")来获取文件的路径,没有任何的问题。在打成jar后运行,结果不能读取到文件。在jar里面对应的class路径下可以看到该文件,确定是有打包进去的。此时通过 this.getClass().getResource("");方法无法正确获取文件。用 InputStre...
2018-04-24 08:45:47
18875
4
转载 Java8 lambda表达式10个示例
例1、用lambda表达式实现Runnable我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这里做了什么呢?那就是用() -> {}代码块替代了整个匿名类。1234567// Java 8之前:new Threa...
2018-04-13 09:15:16
552
原创 zuulGateway 通过filter统一修改返回值
使用spring cloud有时候我们给客户端返回内容的时候,往往需要添加一些额外的东西。比如加密,多添加一个返回值等等。当然可以在方法里面处理,但如果方法很多,需要统一处理的,就很不方便了,这时候可以通过zuulGateway的filter来统一处理。直接看代码,很简单:import java.io.InputStream;import java.nio.charset.Charset;...
2018-04-08 11:55:46
7441
VMware安装Mac OS 用的 vmware tools 安装文件下载
2017-04-18
hadoop-windows下配置文件
2016-12-09
富文本编辑器kindeditor-4.0.5.zip
2013-01-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人