技术随笔
-
我用注解实现接口的操作流水日志
点击上方蓝字关注我! 在项目中,我们会需要获取接口的操作日志。比如获取接口的接口名、操作人,接口运行时间、所属的服务、接口的类型(增删改查)等等。初级的做法是在接口方法执行完后将这…
-
我用stomp框架写了一个即时聊天工具
点击上方蓝字关注我! WebSocket技术可以让服务端主动将信息推送给客户端,不必像Http协议那样客户端想要获取服务端数据,必须要向服务端发起一个请求。 WebSocket是全…
-
这款插件让我的SpringBoot项目实现了热部署
点击上方蓝字关注我! 热部署 相信你肯定被【修改代码后还要重新部署项目才能测试】这个问题困扰过。有些大项目部署启动一次可能要花个几分钟,我们写完代码后需要自测,测试人员来测试,前后…
-
还在用StringBuilder进行字符串拼接?那你就OUT了
点击上方蓝字关注我! 我们在开发中会经常拼接字符串,例如我们现在有一个数组: private static final String[] n…
-
高并发下如何生成随机数
点击上方蓝字关注我! 在平时的开发中我们经常会用到随机数,比如使用new Random()、Math.random()等生成,然而在高并发环境中(比如电商项目,中间件系统等)使用上…
-
SpringBoot中如何实现接口的统一返回和异常的统一捕获
点击上方蓝字关注我! 接口的统一返回 在开发公司接口时,发现Controller层的接口返回都需要用一个Result包裹,如下图所示: 图示代码中无论是创建接口或者查询接口,这里都…
-
SpringBoot中如何让List和Json自动互转
点击上方蓝字关注我! 之前业务开发时,有一个字段接收的数据是Json格式的,并且需要以Json形式入库: 数据库中是这样存储的,这里实际是一个Json数组。 [ &nbs…
-
开源的高性能本地缓存-Caffeine
点击上方蓝字关注我! 高性能本地缓存 在将本地缓存前你肯定在想,本地缓存有么好讲的,不就是一个map么。把要缓存的数据存入map中,自己就能实现。但是这里有几个点我们要考虑: “ …
-
还记得我之前的代码生成工具么,这次我又给它升级了
点击上方蓝字关注我! 又升级啦 之前我自己写了个代码生成工具,为了能在创建实体时节省不必要的工作。当时我给这个工具升级了一次。有兴趣的同学可以看看我写的这篇文章: “ 还记得我之前…
-
什么,同事写的代码导致数据库死锁了
点击上方蓝字关注我! 背景 新项目准备上线,测试在测试功能时,发现点击按钮后页面就卡住不动了,开始以为是网络问题,但是这个页面卡住百分之百复现。查看后台日志,发现在执行更新语句的时…
-
想在线编程么,这几个在线代码编辑器网站适合你
点击上方蓝字关注我! 今天给大家推荐几个可以在线编程的网站。对于大部分开发者可能会不屑使用在线的网站,认为在自己电脑安装环境不是很简单的事情么。但是你很有可能临时需要一台电脑去测试…
-
【知识科普】比多线程还快?了解下什么是协程
点击上方蓝字关注我! 什么是线程 线程是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个…
-
分布式环境中如何使用聚合日志系统ELK
点击上方蓝字关注我! ELK简介 ELK日志系统相信大家都不陌生了,如果你的系统是集群有多个实例,那么去后台看日志肯定不方便,因为前台访问时随机路由到后台app的,所以需要一个聚合…
-
【知识科普】分布式系统中你不得不了解的CAP定理与BASE理论
点击上方蓝字关注我! CAP定理 CAP定理又叫布鲁尔定理,这个定理告诉我们在一个分布式系统中,不可能同时满足下面三点: “ 一致性(Consistency) (等同于所有节点访问…
-
从Sonar上学习代码优化-代码异味案例
点击上方蓝字关注我! Sonar相信大家都不陌生了,很多公司都把Sonar当做代码质量检测的工具,通过Sonar来考察软件的质量,以及程序员的水平。我们在修改代码异味时,也逐渐提高…
-
Redis是如何持久化到硬盘的
点击上方蓝字关注我! Redis为什么需要持久化 我们在项目中或多或少会用到Redis,Redis主要用作缓存数据库。使用Redis可以大大提升我们程序是性能,使用Redis之所以…