字斟句酌业务代码
文章平均质量分 80
尽力写好每一行业务代码
Java小白白又白
Java小白
展开
-
单体架构下的认证授权方案 - SpringSecurity + JWT
本文言简意赅,需要有一定的Java编程基础,说再多也不如直接撸代码,文末附SpringSecurity + JWT Demo和Github开源项目 mall-tiny 完成实现方案以供参考。直接看代码有疑惑的同学推荐两个B站免费的教学视频:尚硅谷SpringSecurity框架教程(spring security源码剖析从入门到精通)_哔哩哔哩_bilibiliSpringSecurity框架教程-SpringSecurity+JWT实现项目级前端分离认证授权-B站最通俗易懂的SpringSecurit原创 2022-01-17 10:29:38 · 1751 阅读 · 0 评论 -
更新缓存的正确姿势(先更新缓存还是先更新数据库)
目录1.更新缓存的三种模式1.1Cache Aside1.1.1 先更新DB,后更新缓存1.1.2先更新缓存,后更新DB1.1.3先删除缓存,再更新DB1.1.4先更新DB,再删除缓存(业界推荐方案)1.2Read/WriteThrough1.3ReadThrough/Write Behind2.三种缓存模式小结1.更新缓存的三种模式引入缓存势必会导致数据的一致性问题(因为分别存放到缓存以及DB),那么在数据更新时,缓存和DB都得更...原创 2021-11-05 09:39:51 · 3686 阅读 · 0 评论 -
记一次接口优化经历
前言:最近接了一个导出接口的优化需求,原9000+数据导出秒数660+,优化后5S,特此记录一下优化方案以供大家一起讨论学习。本文先通篇列举一下优化的方案,再详细的阐述这次优化的具体细节。1.接口优化维度 个人感觉接口优化分为两个维度,分为接口响应时间(使接口更快的返回数据)和内存占用率(减少接口内存消耗)。1.1 接口响应时间 这类接口需要优化的原因通常是因为该接口响应时间超过了nginx/网关/feign所配置的超时时间限制。那么我们可以考...原创 2021-10-25 19:59:41 · 907 阅读 · 0 评论 -
Java SPI 插件化开发
1.前言最近业务提出了一个需求,要求在现有A厂商业务逻辑基础上兼容B厂商的业务逻辑,同时支持热切换。简单的方案为给A、B厂商配置不同的标识,业务代码中根据表示来执行不同的业务逻辑。但这么搞缺点也很明显:代码冗杂,可扩展性太低,后期如果新增一个C厂商,负责开发的程序员可能会死。 由于之前对mybatis的源码略有研究,灵光一现是否可以采用插件化的方式,把A、B厂商共有的业务抽离成接口,通过让JVM加载不同实现类的方式实现不同厂商业务逻辑的切换呢?2.什么是spi...原创 2021-09-18 13:47:08 · 1391 阅读 · 0 评论 -
Java ZIP压缩
目录1.压缩2.解压3.压缩/解压嵌套zip文件思路1.压缩code:package com.example.practice.srp;import lombok.extern.slf4j.Slf4j;import java.io.*;import java.util.ArrayList;import java.util.List;import java.util.Objects;import java.util.zip.ZipEntry;import java.原创 2021-08-06 15:24:17 · 576 阅读 · 0 评论