- 博客(14)
- 收藏
- 关注
原创 security+jwt+redis+mongodb
里面实现了认证,授权,数据库密码加密,密码解析,唯一登录(也可以多登录,将之前无效的登录挤下线),防盗(刷新token(默认一小时)、修改密码、退出系统直接删除数据)。至于长时间保存数据,比如七天免登录逻辑其实一样,就不去重复了,唯一遗憾的是没有增加动态的授权,有机会再补上吧。写了一个security+jwt+redis+mongodb,基于一些特定的场景进行了一定的整合。
2024-01-14 21:21:34
384
原创 关于ThreadLocal的一些理解
synchronized一般是多个线程访问同一个资源,为了线程安全每个线程在访问资源的时候会将资源锁起来,而ThreadLocal则是相当于将资源复制一份出来,每个线程在访问的时候只能拿到对应的资源副本,观察代码可以发现ThreadLocal其本质是一个map,他的key是当前线程所对应的资源ThreadLocal对象,而value就是设置的值。ThreadLocal一般是用在多线程场景里面,而多线程场景下synchronized也很常见。
2023-09-13 19:02:06
58
原创 字符串转二维码base64图片字符串
QrConfig里面默认设置了宽高跟颜色(宽高300px,背景白色,前置黑色),可以不用设置(有需要的也可以自行宽高,颜色RGB位256*256*256)。这里以百度的URL为例,生成base64图片字符串。补充类,生成对应的字符串。字符串太长不显示了。
2023-05-16 16:15:12
663
2
原创 函数式编程reduce与groupingBy的常见使用
groupingBy类似于SQL里面的group by,对集合进行分组,key根据自己的需求进行改动,val就是group by之后的集合。reduce内部提供了大量的API,包括加减乘除,最大最小值等,不过reduce只针对于BigDecimal。
2022-11-09 15:57:39
382
原创 多线程之生产者消费者模式
注:生产者消费者模式并非设计模式问题:传统意义上,生产者消费者之间相互依赖,耦合度较高,而生产者消费者模式则把他们单独开,各自完成各自的任务,降低了耦合度。生产者消费者模式中,有三个主要的对象,分别是生产者,消费者跟缓冲区。其中生产者负责生产数据,消费者负责消费数据,缓冲区是用来存放生产者生产的数据并用于消费者消费。import java.util.ArrayList;import java.util.List;import java.util.UUID;//缓冲区public cl
2022-05-17 18:55:57
213
原创 二十三种设计模式之代理模式(动态代理)
动态代理:打个比方,房东租房,中介发布,房客找房,其中房东并不需要发布消息(发朋友圈,贴小广告),而这些事是被中介做了的,所以被代理者不想去做某些事,不能去做某些事,被代理者做了。常见的两种:1.JDK动态代理(常见的AOP),基于接口2.CGLib(没有太多关注),据说基于类package 动态代理;public interface Girl { void 恋爱();}package 动态代理;public class XiaoHong implements Gir
2022-04-13 21:55:58
341
原创 二十三种设计模式之建造者模式
关于建造者模式的一些理解静态工厂跟构造器有个共同的局限性:都不能很好地扩展大量参数。例如一台电脑,如果必要参数有两个,参数一:i5处理器,参数二:1080显卡,非必要参数...JavaBean也能实现,但是过于繁琐。public class Outer { //建造者模式 private final String necessaryA; private final String necessaryB; private final String unnecessa
2022-04-05 21:11:11
317
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人