草庐IT

机械鼠标看了心动?智商税别再交了!

现在的游戏玩家多少都会备一把机械键盘作为驰骋疆场的利器,不过在面对机械鼠标的时候还是会犹豫:机械鼠标是什么东西,到底能买吗?如果经历过早期的电脑房时代,那你对机械鼠标就不会陌生,因为老式的鼠标工作方式就是机械的,机械鼠标是由底部的橡胶球带动鼠标内的机械部件进行传感,由于机械部件较多,也比较容易损坏,在受到磕碰时很容易损伤。另外,机械鼠标的定位不够精确,不能方便地调节DPI,很多现在鼠标具备的功能也没有,所以在使用的时候也会受到很大的影响,因此很快就被光电鼠标淘汰了。但是很明显,目前市面上是没有这样的机械鼠标的,所以电商页面的“机械鼠标”另有所指,那就是类似于机械键盘轴体的鼠标微动。微动开关我们

机械鼠标看了心动?智商税别再交了!

现在的游戏玩家多少都会备一把机械键盘作为驰骋疆场的利器,不过在面对机械鼠标的时候还是会犹豫:机械鼠标是什么东西,到底能买吗?如果经历过早期的电脑房时代,那你对机械鼠标就不会陌生,因为老式的鼠标工作方式就是机械的,机械鼠标是由底部的橡胶球带动鼠标内的机械部件进行传感,由于机械部件较多,也比较容易损坏,在受到磕碰时很容易损伤。另外,机械鼠标的定位不够精确,不能方便地调节DPI,很多现在鼠标具备的功能也没有,所以在使用的时候也会受到很大的影响,因此很快就被光电鼠标淘汰了。但是很明显,目前市面上是没有这样的机械鼠标的,所以电商页面的“机械鼠标”另有所指,那就是类似于机械键盘轴体的鼠标微动。微动开关我们

求求你们了,别再重复造轮子了,一个 Spring 注解轻松搞定循环重试功能!

在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。一、@Retryable是什么?spring系列的spring-retry是另一个实用程序模块,可以帮助我们以标准方式处理任何特定操作的重试。在spring-retry中,所有配置都是基于简单注释的。二、使用步骤1.PO

求求你们了,别再重复造轮子了,一个 Spring 注解轻松搞定循环重试功能!

在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。一、@Retryable是什么?spring系列的spring-retry是另一个实用程序模块,可以帮助我们以标准方式处理任何特定操作的重试。在spring-retry中,所有配置都是基于简单注释的。二、使用步骤1.PO

英语没学好到底能不能做coder,别再纠结了先学起来

其实,编程中用到的英文词汇并不多,经常用到的写着写着就记住了。大多数时候只有给变量或者对象起名的时候才会去Google上查。于是,我将经常在coding中用到的词汇总结了一下。【阅读全文】A字母开头的英文词汇Appearance外表assert/assertion异常add添加append附加args/argument参数attribute属性B字母开头的英文词汇byte字节bool布尔类型Bug故障(虫子)break突破/跳出C字母开头的英文词汇cmd/commond命令close关闭colum列char字符型class类create创建continue继续case情形capitalize用

英语没学好到底能不能做coder,别再纠结了先学起来

其实,编程中用到的英文词汇并不多,经常用到的写着写着就记住了。大多数时候只有给变量或者对象起名的时候才会去Google上查。于是,我将经常在coding中用到的词汇总结了一下。【阅读全文】A字母开头的英文词汇Appearance外表assert/assertion异常add添加append附加args/argument参数attribute属性B字母开头的英文词汇byte字节bool布尔类型Bug故障(虫子)break突破/跳出C字母开头的英文词汇cmd/commond命令close关闭colum列char字符型class类create创建continue继续case情形capitalize用

求求你们别再用 kill -9 了,这才是 Spring Boot 停机的正确方式!!!

再谈为了提醒明知故犯(在一坑里迭倒两次不是不多见),由于业务系统中大量使用了springBootembeddedtomcat的模式运行,在一些运维脚本中经常看到Linux中kill指令,然而它的使用也有些讲究,要思考如何能做到优雅停机。何为优雅关机就是为确保应用关闭时,通知应用进程释放所占用的资源线程池,shutdown(不接受新任务等待处理完)还是shutdownNow(调用Thread.interrupt进行中断)socket链接,比如:netty、mq告知注册中心快速下线(靠心跳机制客服早都跳起来了),比如:eureka清理临时文件,比如:poi各种堆内堆外内存释放总之,进程强行终止会带

求求你们别再用 kill -9 了,这才是 Spring Boot 停机的正确方式!!!

再谈为了提醒明知故犯(在一坑里迭倒两次不是不多见),由于业务系统中大量使用了springBootembeddedtomcat的模式运行,在一些运维脚本中经常看到Linux中kill指令,然而它的使用也有些讲究,要思考如何能做到优雅停机。何为优雅关机就是为确保应用关闭时,通知应用进程释放所占用的资源线程池,shutdown(不接受新任务等待处理完)还是shutdownNow(调用Thread.interrupt进行中断)socket链接,比如:netty、mq告知注册中心快速下线(靠心跳机制客服早都跳起来了),比如:eureka清理临时文件,比如:poi各种堆内堆外内存释放总之,进程强行终止会带

别再用 JWT 作为 Session 系统了,问题重重,后果很危险!

JSONWebTokens,又称JWT。本文将详解:为何JWT不适合存储Session,以及JWT引发的安全隐患。望各位对JWT有更深的理解!十分不幸,我发现越来越多的人开始推荐使用JWT管理网站的用户会话(Session)。在本文中,我将说明为何这是个非常非常不成熟的想法。为了避免疑惑和歧义,首先定义一些术语:无状态JWT(StatelessJWT):包含Session数据的JWTToken。Session数据将被直接编码进Token内。有状态JWT(StatefulJWT):包含Session引用或其ID的JWTToken。Session数据存储在服务端。Sessiontoken(又称Se

别再用 JWT 作为 Session 系统了,问题重重,后果很危险!

JSONWebTokens,又称JWT。本文将详解:为何JWT不适合存储Session,以及JWT引发的安全隐患。望各位对JWT有更深的理解!十分不幸,我发现越来越多的人开始推荐使用JWT管理网站的用户会话(Session)。在本文中,我将说明为何这是个非常非常不成熟的想法。为了避免疑惑和歧义,首先定义一些术语:无状态JWT(StatelessJWT):包含Session数据的JWTToken。Session数据将被直接编码进Token内。有状态JWT(StatefulJWT):包含Session引用或其ID的JWTToken。Session数据存储在服务端。Sessiontoken(又称Se