自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Gogym的博客

热爱生活的程序猿,189155278@qq.com

原创 java ThreadPool线程池的使用,线程池工具类

实际上java已经提供线程池的实现ExecutorService。 为了更方便的使用和管理。这里提供一个线程池工具类,方便大家的使用。 直接看看代码: 使用 public static void main(String[] args) { //实例化一个固定数...

2020-03-30 09:24:20 77 0

原创 java AES对称加密,微信aes解密,对应js aes加解密

AES是对称加密算法,顾名思义就是加密和解密的密钥是同一个。 更多的详情可以先百度了解一下,这里不多介绍了。 直接看代码如何使用。 为了更好的兼容不同的算法,先添加一个辅助包 <dependency> <groupId>org.boun...

2020-03-30 09:10:43 75 0

原创 objectbox 在android开发中的配置和使用

介绍:ObjectBox是一个超快的面向对象数据库,专为物联网和移动设备而构建。我们为小型设备提供边缘计算,允许在本地存储和处理数据,以实现高效,快速和安全的数据管理。 ObjectBox是nosql数据库,如果接触过java开发,那么ObjectBox有点类似redis。 本文主要介绍一下在...

2020-02-26 15:26:25 168 0

原创 getty 又双叒叕更新啦,一个长得有点像netty的网络框架

getty 又双叒叕更新啦!!! 本次更新主要是添加了UDP的支持。。。 getty是基于java nio(俗称nio1)封装了UDP,借助getty本身的架构设计,getty udp的性能表现也非常不错 基于getty良好的设计模式,getty udp的使用方式与tcp差别不大。 唯一...

2019-12-18 16:55:45 81 0

转载 Linux下如何不停止服务,清空nohup.out文件

1.nohup.out的由来及作用 用途:LINUX命令用法,不挂断地运行命令。 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运行由Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 n...

2019-11-08 14:45:24 87 0

原创 java spring boot 完全纯代码配置mybatis,解放xml

Mybatis是一个使用广泛的ORM框架,相信大家都使用的很熟练的。但绝大部分朋友应该都使用XML进行配置。在springboot中,为了方便或者减少xml文件的数量,也可以选择完全通过代码来配置mybatis。下面就来说说如果通过java代码配置mybatis。 配置起来也非常简单,只需一个类...

2019-10-29 08:50:21 215 0

原创 mysql解决mysql-connector-java 6+ 插入数据库时差问题

使用mysql-connector-java 6.x版本后。new Date()插入数据库的时间与国内时间有14个小时的时差。 原因是mysql-connector-java 6.x版本后默认使用UTC(协调世界时)。这个时间与国内东8区时间有14个小时的时差。 解决方法如下: 在数据库连接...

2019-10-18 08:33:06 125 0

原创 getty 一个完全基于java 实现的aio框架

目录 前言 说说写这个框架的原因: 说说getty的特点: 说说getty的性能和稳定性: 如何使用: 插件的使用: 未完待续。。。 githup地址:https://github.com/gogym/getty 码云地址:https://gitee.com/kokjuis/ge...

2019-10-01 19:48:20 672 0

原创 netty4 使用SSL 安全连接,简单明了

netty是一个非常优秀的nio框架,就不多介绍啦,这里主要介绍如何在netty中开启ssl。 这里使用的版本是 netty4 ,netty4内部已经实现了标准的 jdk ssl 以及openssl。很方便的就能使用。 ssl的一些介绍,为何要用ssl就不累述了,百度一大堆。咱们讲究实战,直接...

2019-08-13 17:10:42 1894 0

原创 ios开发cocoaAsyncSocket与protobuf的使用swift5版本,含粘包拆包

最近搞了一下即时通讯,为了配合服务器的使用(netty4+protobuf3),在ios客户端捣鼓了一下。 在ios客户端使用protobuf的资料比较少,配合cocoaAsyncSocket使用的更少,swift版本的更加少。 在swift版本中有处理protobuf粘包/拆包的资料基本没有...

2019-08-09 12:38:00 422 0

原创 netty4 ip过滤器的使用(可做ip黑名单处理)

netty4的ip过滤跟netty3的区别比较大。netty3的使用方法这里不介绍了,看看在netty4中怎么做ip的过滤。 从netty的文档中我们可以看到这么几个类: https://netty.io/4.1/api/io/netty/handler/ipfilter/package-su...

2019-07-13 13:32:15 1234 1

原创 java使用中Protobuf3 Any类型转json (解决Cannot find type for url: type.googleapis.com)

Protobuf是谷歌出品的一个数据协议框架,跟json相比,有独特的优点,这里不多说。 Protobuf3相比Protobuf2有很多改进。其中一个就any类型。有点类似java的泛型。也添加了Protobuf与json的互转,非常方便 如何转换json: 先添加jar支持,protobu...

2019-07-03 09:52:05 884 0

原创 (centos7)阿里云 ECS中毒后CPU一直占用100%的解决过程

这两天发现部署在阿里云上的ECS服务器的CPU一直占用100%,一开始以为只是偶然的,没在意。 后面发现CPU一直满载,这不应该呀。于是赶紧看看是怎么回事。 使用 top 命令查看cpu使用情况: 发现有一个 vTtHH1 的进程占用 200%的cpu,这是什么鬼,貌似哥不曾相识啊。 ...

2019-05-15 15:58:58 2250 1

原创 自定义注解,mybatis通过拦截器执行insert、update sql自动添加当前时间。

开发过程中,会经常执行insert、update语句。大部分数据库表结构都有类似create_time这样的时间列,用于记录创建时间。 很多朋友通常会为这个列设置一个默认值、或者通过代码setTime()去设置。这样做是没有问题的。 这里主要提供注解的方式去达到这个目的。有利于提高开发效率。 ...

2019-04-11 08:58:14 3622 0

原创 mybatis 通过拦截器打印完整的sql语句以及执行结果

开发过程中,如果使用mybatis做为ORM框架,经常需要打印出完整的sql语句以及执行的结果做为参考。 虽然mybatis结合日志框架可以做到,但打印出来的通常都是sql和参数分开的。 有时我们需要调试这条sql的时候,就需要把参数填进去,这样未免有些浪费时间。 此时我们可以通过实现myb...

2019-04-02 15:05:27 3326 3

原创 JAVA采用 Luhm 校验算法来生成条码(银行卡号),防止被篡改

开发过程中,经常会生成一段条码来做为一个标识,比如生成几个商品的条码。但如果只是简单的使用几个随机数来标记,没有任何的校验过程,有时可能不太安全。这里介绍一个简单使用的条码校验方法。这样如果条码被修改过,就无法通过校验,从而达到提高安全性的目的。 这里主要使用Luhm 校验算法。Luhm 校验算...

2019-02-19 16:24:44 445 0

原创 解决通过阿里云SLB多层代理后,spring boot工程获取不到客户端真实IP的问题

现在很多服务都部署到阿里云上,免不了使用SLB做负载均衡,然后又通过了nginx等代理。如果这个时候你想获取客户端访问的真实ip,你会发现一直拿到的是127.0.0.1  下面一起来解决这个问题。 现在来解决一下: 首先:配置一下SLB监听。确定获取真实IP已经开启,一般默认都是开启的,如图:...

2018-12-18 17:37:21 1723 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中指定了以下字符为保留字符:! * ’ ( ) ; :...

2018-12-18 17:09:35 8093 6

原创 java spring boot整合log4j2 的配置与使用

简单说一下log4j2的改进,引用一下百度上的: 1、丢数据这种情况少,可以用来做审计功能。而且自身内部报的exception会被发现,但是logback和log4j不会。 2、log4j2使用了disruptor技术,在多线程环境下,据说性能高于logback等10倍以上。 3、(garbag...

2018-12-01 17:30:18 500 0

原创 java 代码实现encodeURIComponent和decodeURIComponent,解决空格转义为加号的问题。

java自带有一个  java.net.URLDecoder和java.net.URLEncoder。 通过这两个类,可以调用encode()或者decode()方法对字符串进行URL编码。 那既然有了,为什么还要自己实现一套呢?主要原因是Jdk中并没有提供encodeURIComponent...

2018-11-16 15:51:42 8063 0

原创 利用Thumbnails,java图片压缩,转换工具类

Thumbnails是谷歌的一个图片压缩处理开源库。利用这个库可以非常容易的做图片处理。这里整理了一些方法。直接看代码吧。 先添加jar支持 &lt;!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator --...

2018-11-10 10:23:50 1521 0

原创 socket.io 在java与微信小程序上的应用

最近有一个这样的功能场景。用户操作完成后。服务器主动通知另一个客户端显示结果。 这里涉及一个服务器推的这么一个东西。需要实现这么一个功能,对比了几个实现方式。最终选择了socket.io。 1、commet,最初想到这个功能要求不高,想简单的通过commet方式实现就算了。但考虑到commet...

2018-11-09 19:00:56 1841 0

原创 微信小程序 RSA 加密、解密,分段加解密

虽然说微信小程序本身有自己的安全机制,但我们有时候业务需要。需要自己做一层加密,AES比较简单,就不说了。 这里说一下RSA非对称加密。一般网上搜的都不全,要么就没有分段加解密。这里做一下整理,方便大家使用。   主要添加两个方法: function RSAEncryptLong(d){...

2018-09-29 09:44:27 1282 3

转载 如何实现微信抢红包算法?

发出一个固定金额的红包,由若干个人来抢,需要满足哪些规则? 1.所有人抢到金额之和等于红包金额,不能超过,也不能少于。 2.每个人至少抢到一分钱。 3.要保证所有人抢到金额的几率相等。 小灰的思路是什么样呢? 每次抢到的金额 = 随机区间( 0,剩余金额 ) 为什么这么说呢?...

2018-08-30 17:42:58 520 0

原创 okhttp在java中的使用

OkHttp 库的设计和实现的首要目标是高效。这也是选择 OkHttp 的重要理由之一。OkHttp 提供了对最新的 HTTP 协议版本 HTTP/2 和 SPDY 的支持,这使得对同一个主机发出的所有请求都可以共享相同的套接字连接。如果 HTTP/2 和 SPDY 不可用,OkHttp 会使用连...

2018-08-02 15:50:06 2180 1

原创 解决spring cloud Feign远程调用服务,添加headers解决拦截器拦截问题

使用spring cloud 做saas服务器时,经常会通过Feign调用远程服务。有时候我们的远程服务可能做了某些权限验证。需要验证header或者token什么的。如果某没有token,可能会被阻止调用。那如何添加token呢。如果每个方法都手动设置headers,那未免太麻烦。可以通过一个切...

2018-06-12 08:51:28 11784 2

转载 阿里巴巴Java开发手册及Java代码规约扫描eclipse和IDEA插件

《阿里巴巴Java开发手册》是阿里巴巴技术团队的集体智慧结晶和经验总结,经历了大规模的实战不断完善,主要由编码规约、异常日志、单元测试、安全规约、工程结构、MySQL数据库六部分组成。俗话说得好无规矩不成方圆,无规范不能协作,相信大家在编程时都不喜欢维护别人写的代码,代码过度个性化使得维护起来非常...

2018-06-11 08:41:51 486 0

原创 jsencrypt.min.js通过JSEncrypt分段加密解密

最近捣鼓了一下js RSA前端加解密。是通过用jsencrypt.min.js来实现的,这个js本身自带了RSA公钥加密和RSA私钥解密。对一些短字符串加解密足够。但如果加密的和解密的内容比较长的时候,就会有问题。所以要进行分段加解密,参考了网上的一些例子。多少有点问题。所以自己捣鼓了一下。直接看...

2018-05-22 15:43:58 12001 8

原创 java mybatis 多数据源,动态数据源 使用

做项目,有时候需要一个工程里配置多个数据源。网上也有很多啦。我这里写一个比较全,实现相对优雅的方式吧。使用mybatis的时候,可以不用多个DAO。一个DAO全部搞定直接上代码:1、先添加需要的数据源配置# 数据源,默认配置Druid spring.datasource.type=com.alib...

2018-04-27 11:03:25 504 1

原创 解决 java.io.FileNotFoundException: file:/usr/project/xxx.jar!/BOOT-INF/classes!/conf/config.js

使用spingboot开发,在工程根目录中添加了一个配置文件,在IDE中通过this.getClass().getResource("")来获取文件的路径,没有任何的问题。在打成jar后运行,结果不能读取到文件。在jar里面对应的class路径下可以看到该文件,确定是有打包进去...

2018-04-24 08:45:47 11923 4

转载 Java8 lambda表达式10个示例

例1、用lambda表达式实现Runnable我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这里做了什么呢?那就是用...

2018-04-13 09:15:16 400 0

原创 zuulGateway 通过filter统一修改返回值

使用spring cloud有时候我们给客户端返回内容的时候,往往需要添加一些额外的东西。比如加密,多添加一个返回值等等。当然可以在方法里面处理,但如果方法很多,需要统一处理的,就很不方便了,这时候可以通过zuulGateway的filter来统一处理。直接看代码,很简单: import java...

2018-04-08 11:55:46 5113 0

原创 zuulGateway网关添加路由异常熔断

zuulGateway是spring cloud中很不错的组件,使用频率很高。使用过程中偶尔可能遇到服务路由异常的情况,如果没有异常熔断,可能会造成应用无响应,严重甚至造成系统雪崩。所以一般需要加上熔断机制。直接看代码,很简单:/* * 文件名:ServerFallback.java 版权:Co...

2018-04-08 11:43:20 1246 0

原创 JAVA读取文件流,设置浏览器下载或直接预览

最近项目需要在浏览器中通过URL预览图片。但发现浏览器始终默认下载,而不是预览。研究了一下,发现了问题: // 设置response的Header,注意这句,如果开启,默认浏览器会进行下载操作,如果注释掉,浏览器会默认预览。 response.addHeader("Content-Di...

2018-03-16 08:50:51 9890 2

原创 RESTful API 处理有点的URL获取不到的问题

使用RESTful风格的URL。但是在处理带点的URL时,后台不能正确拿到,如 localhost:8080/file/1234.jpg  这个URL。后台只拿到 1234 ,拿不到.jpg这个后缀。原因:Spring将点号看作扩展分隔符号,相当于/,因此拿不到。解决方案:RequestMappi...

2018-03-13 12:30:38 1027 0

原创 解决 Processing of multipart/form-data request failed. /upload/A.tmp (No such file or directory) 问题

使用spring boot 上传,刚开始一切正常,但过了一段时间上传文件的时候出现错误。 ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - Servle...

2018-01-23 08:55:11 23397 5

原创 spring boot 重写requestServlet统一解密请求参数

在做项目过程中,经常需要对传递的参数进行加解密操作,如果把加解密放到每个方法中,会很麻烦,也不统一,因为每个方法都要这部分代码。 所以可以重写request替换spring原来的request入口。达到参数在请求进入时就解密好,这样既不破环spring本身的特征,也能让其他开发人员无感知的情况下...

2018-01-03 09:01:09 5403 7

原创 JAVA 常用时间工具类

不说了,直接看代码吧 package com.poly.rbl.utils; import java.text.DateFormat; import java.text.ParseException; import java.text.ParsePosition; import ja...

2017-12-27 08:56:09 439 0

原创 spring boot 下对JSON返回值去除null和空字段

在开发过程中,我们需要统一返回前端json格式的数据,但有些接口的返回值存在 null或者""这种没有意义的字段。不仅影响理解,还浪费带宽,这时我们可以统一做一下处理,不返回空字段,或者把NULL转成“”,spring 内置的json处理框架是Jackson。我们可以对它配置一...

2017-12-18 10:22:27 17366 9

原创 keepalived+nginx+mysql实现高可用及负载均衡

最近捣鼓了一下mysql数据库的高可用方案。借助mysql官方的InnoDB Cluster 以及nginx+keepalived。能够轻易的做到。效果及稳定性令人满意。 前言: 首先这里默认你已经安装好了mysql集群,并且集群是可用的。不会安装的可以参考另外一篇博文:http://blog...

2017-11-28 17:55:21 6471 1

提示
确定要删除当前文章?
取消 删除