自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 redis缓存击穿,缓存雪崩,缓存穿透

某个热点key在缓存和数据库都存在,过期时,大量用户访问这个key,读缓存读取不到就会同时去数据库读,压垮数据库.怎么解决:将热点数据设置不过期,但是需要自己判断哪些数据是热点数据加锁,多个访问时,只有一个客户端能获得锁,其他会被阻塞,等锁释放了,缓存中已有数据,其他客户端就不用访问数据库,但是这个方法会影响吞吐量(有损方案)

2023-04-20 20:57:20 97

原创 自定义注解上的注解@Target,@Retention,@Documented

在Java中,自定义注解可以使用@Target元注解来指定注解可以应用的元素类型。@Target注解具有ElementType类型的value属性,可以设置一个数组,用于指定注解可以应用到的元素类型。以下是一些可能的ElementType类型:- ElementType.TYPE:类、接口或枚举类型- ElementType.FIELD:字段- ElementType.METHOD:方法- ElementType.PARAMETER:方法参数。

2023-04-05 16:17:56 416

原创 java将文件以流的形式上传到minio中

minioClient.putObject(PutObjectArgs.builder().bucket("桶的名字").object(format).stream(inputStream, file.getSize(), -1).contentType(file.getContentType()).build());

2023-04-03 22:16:05 3823

原创 redis的数据类型

数据类型描述的是value的类型,key都是string,长江的数据类型(value)有:list(链表,quicklist(多个ziplist双向链表))hash表(ziplist,hashtable)set(无序的集合,intset,hashtable)sorted(在set的基础上加入了有序的功能)bitmap(主要做一些统计)hyperloglog(主要做一些统计)每一种类型都用redisObject结构体来表示,情况不同,编码(底层数据结构)就不同。

2023-04-02 19:22:12 105

原创 Spring Security-JWT验证

我们需要自定义一个过滤器,这个过滤器会去获取请求头中的token,对token进行解析取出其中的uuid。使用userid去redis中获取对应的User对象。然后封装Authentication对象存入SecurityContextHolder

2023-03-29 19:59:48 234

原创 Java项目登录常见的验证方式

session特点: //session存储在服务器,使http请求有状态1. session的底层实现:cookie 强依赖cookie2. session默认不支持集群/分布式/微服务架构 实现session共享,比较麻烦3.移动端不支持sessionJWT特点: JWT使服务器无状态,存储在客户端 JWT支持集群/分布式/微服务架构 JWT的载荷可以存储一些额外的用户信息 JWT可以自认证,不需要重新数据库,重新用户信息减少持久层的操作

2023-03-29 18:04:54 299

原创 Spring Security -1登录流程

Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。

2023-03-29 17:53:23 133

原创 汇客CRM系统公海池捞取数据异常

解决方法:将方法上面的权限注解修改即可,权限字段写错了,数据库中的商机捞取权限字段不是代码里写的那个,代码写错了

2023-03-28 21:49:09 430

原创 空间换时间思想

在项目启动时,将需要使用的对象,进行提前实例化,预加载存入内存中,以备之后使用时可以节省时间,这就是空间换时间,但是此方法会占用内存,如果数据量过大,不建议使用此方法,会导致内存大量被占用而运行缓慢。

2023-03-28 21:18:21 136

原创 策略设计模式

该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户(算法的具体实现不同?策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。这就代表我使用的是rule策略类,如果我想要更换admin策略类,只需要将yml中的属性rule改为admin即可。设计了一个策略接口,设计了多个实现了该策略接口的策略类,在每个策略类中都添加注解。通过更改yml配置文件中的属性,即可更换使用的策略类.

2023-03-28 21:05:42 96

原创 CRM系统线索转商机分配归属人失败解决方法

将策略类中的静态代码块改为注解@PostConstruct的方法,将自动装配的static静态删掉,修改字段为DictValue

2023-03-28 20:46:52 224

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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