zhoukun@Fly

用文字整理生命!

Nginx重试机制导致数据库出现重复记录

前言 前几天正在升级发版项目的时候,发现一个很奇葩的问题,就是用户再浏览器里执行了一次http请求,结果后端服务器执行了两遍,如果这次请求是Insert操作,可想而知,数据库会多出一条一模一样的记录来。 场景还原 网关用Nginx做了反向代理和负载均衡,Nginx下挂着两台阿里云ECS服务器...

2019-01-02 17:06:04

阅读数 218

评论数 1

组装树形结构数据功能封装

前言: 由于上一篇博客只针对于实体TreeNode组装树形结构,但是实际开发中,我们对应数据表会创建很多实体来承载数据,反成不能每一种实体都需要写个递归或者循环的方法来组装数据结构吧?下面我将上一拼博客中的方法再进一步封装一下,封装成一个工具类,应对与所有的实体,但是这些实体中,必须含有Hash...

2018-11-13 18:58:24

阅读数 258

评论数 0

组装树形结构数据,子节点去重!

TreeNode实体 public class TreeNode { private String id; private String parentId; private HashSet<TreeNode&am...

2018-11-12 19:41:18

阅读数 92

评论数 0

git 撤销命令、版本恢复命令

前言 在使用git的时候难免手贱,有时候想撤销本地的修改,也就是工作区的修改,有时候想撤销暂存区的修改,有时候甚至想恢复某个版本。下面我简单的总结一下撤销和恢复版本的命令。 1、撤销工作区的修改 1.1、`git checkout <fi...

2018-08-13 15:13:11

阅读数 234

评论数 3

用泛型和反射给List中的数据排序

前言 最近优化项目代码时,发现了很多重复的代码,都是给List中的数据做排序,只是List中存放的数据类型不一样,但是这些数据都有一个共同点,那就是里面的数据都有date字段和orderNum字段,例如,TestVo中就有date、orderNum等成员变量,OrderVo中也有date、or...

2018-06-06 17:24:07

阅读数 255

评论数 0

使用HttpURLConnection下载网络文件

前言: 最近产品经理要分析用户的行为数据,于是让我将生产上的数据包都下载下来,用HttpURLConnection和Java的IO流,挺方便,下面简单介绍一下。 下载代码 public static void testDownLoad(){ BufferedInputS...

2018-03-15 16:23:15

阅读数 2044

评论数 4

JVM内存分析

前言 前些日子小编接到一个新活,生产环境的服务器内存经常爆满,还没有用多长时间了,内存就剩不下多少了,经理于是让我分析了一下JVM内存,找一找哪个对象占用内存大,有没有内存泄露的地方,以及哪个线程占用资源多等等。 使用Jmap在线上分析 首先,小编用jvm自带的工具jmap查了一下tomcat分配...

2017-10-30 22:52:06

阅读数 602

评论数 5

总结

时光匆匆啊

2017-08-31 10:33:47

阅读数 391

评论数 8

redis中的maxmemory

前言 当redis中的存储数据的容量达到最大时,若果我们再往里面存储数据,redis在默认的配置下会抛出异常,那么当mem_used内存已经超过maxmemory,我们采取的措施是什么哪? 清理策略 1.volatile-lru:从设置了过期时间的数据集中,选择最近最久未使用的数据释放。 2.al...

2017-08-27 22:18:59

阅读数 1476

评论数 10

深入理解回调函数的使用

前言 回调函数在框架中的使用是家常便饭,无论是前台框架还是后台框架,譬如,Jquery的Aajax函数就封装了回调的功能,Spring在整合Hibernate的时候也封装了回调的功能,那为什么要有回调那?回调函数到底有什么作用那?小编谈一下自己的见解。 回调函数的作用 为什么设置回调函数,这个问题...

2017-08-21 17:40:41

阅读数 6176

评论数 7

Java中的并发工具类--CyclicBarrie

需求三个子线程,每个子线程执行N个不同的任务,但是这三个子线程分别执行完第N-1个任务后,三个子线程的第N个任务需要同时执行,此时,CyclicBarrie就派上用场了。具体代码public class UseCyclicBarrier { static class Runner imple...

2017-08-08 22:41:33

阅读数 386

评论数 5

jdk1.7与jdk1.8切换问题

前言 在做不同的java项目时候,很可能来回切换jdk,由于小编的jdk1.7是安装版的,jdk1.8是绿色版的,当做不同的项目时候,就来回切换jdk了,遇到了一下问题。 遇到的问题 修改环境变量JAVA_HOME后,jdk还是切换不会来 问题原因 当系统安装jdk1.7后...

2017-08-07 10:01:43

阅读数 8905

评论数 10

java.io.IOException: invalid constant type: 15

小编最近将jdk1.7升级到jdk1.8后,当运行旧项目时,启动spring加载bean的时候报运行时异常,还以为spring哪配置出错了,检查了一遍发现没错,结果是jar版本问题,于是修改pom.xml文件,更新javassist的版本从3.15.0到3.18.2,此错误消失。 <depe...

2017-08-03 09:09:09

阅读数 4777

评论数 7

Dubbox 构建Restful服务

Facade@Path("/sysUserService") @Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML}) @Produces({ContentType.APPLICATION_JSON_UTF_8, C...

2017-08-02 21:38:56

阅读数 811

评论数 6

Json Web Token

Json Web token简介 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC7519),该token被设计为紧凑且安全的,JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源...

2017-07-29 23:35:31

阅读数 1468

评论数 18

《Shiro+Json Web Token》----用多线程优化登录

前言: 在最近这个权限框架中,小编发现登录很慢,因为是框架启动后第一次登录,需要创建很多对象还有打通额外的链接,所以很慢,但是第二次登录就明显的快了。于是打开项目的源码,开始优化起来,在了解完大体的业务逻辑后,感觉能用上多线程,于是就测试了一下,发现挺管用,小编将经验分享给大家吧! 使用的技术点 ...

2017-07-26 21:05:47

阅读数 4912

评论数 30

windows环境下,点击tomcat的startup.bat闪退问题

前言 最近在本地测试项目的时候,小编在本地解压了三个tomcat,需要将三个tomcat同时运行,可是当点击bin目录下的startup.bat时,黑框框出现闪退问题,以下是问题解决方案。 更改端口号由于要同时运行三个tomcat,每个tomcat要运行在不同的端口上,所以要更改默认的配置文件-s...

2017-07-15 21:52:43

阅读数 3094

评论数 19

《权限系列shiro+cas》----cas登录原理

前言 这篇博客小编只是贴了两个cas官网上的两个原图,这两个图对于理解cas的单点登录很有帮助。 不使用代理的登录时序图 使用代理的登录时序图 小结 这两张图展示了cas的登录原理,里面用到了很多专业术语,有TGT,ST等等,将cas的登录原理总结成一句话,就是几个...

2017-07-09 10:50:01

阅读数 2593

评论数 17

《权限系列shiro+cas》----修改cas的默认登录页

前言 cas的默认登录页相对来说不怎么友好,我们可以自己定做。 cas原始登录页面 修改步骤 上面的页面就是cas\WEB-INF\view\jsp\default\ui\casLoginView.jsp, 修改配置文件 CAS所有的界面位置都是在cas.prop...

2017-07-01 11:36:57

阅读数 1231

评论数 12

《权限系列shiro+cas》----Cas服务端的配置

前言 小编用的casServer版本是4.0的,在4.0之后cas做了升级,据说变化很大,大家如果有兴趣可以到cas的官网查看。下面的所有操作都时在源码中cas文件夹中操作的。 源码地址 点击这里,去小编的GitHub上下载源码 去掉Https协议 小编做的项目是企业内部使用的...

2017-06-27 23:36:38

阅读数 2091

评论数 11

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