自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis实现分布式锁

比如:1000个锁,分成10段,每一段100个锁,每一段对应一个Redis实例。(每个锁的名字都叫Product_id_1…Product_id_n),欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。setnx: 如果key不存在,则设置key的值为value,返回1;如果key已经存在,则返回0。通过Redis的setnx命令来实现分布式锁。

2024-03-10 16:44:01 1067

原创 Mysql实现分布式锁

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2024-03-10 16:42:29 529

原创 如何预估系统的瓶颈

CPU 使用率、内存占用、网络流量、磁盘 IO等指标,异常或者持续高位的情况下,都可能是系统瓶颈的表现。

2024-03-03 15:36:20 992

原创 QPS(吞吐量)

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。常规情况下 一天也就是1000w-4000w的吞吐量。常规情况下 每秒也就是200-1000的吞吐量。86400000(一天)每秒钟能够处理的请求数量。QPS:2000(每秒)每秒访问上限500次。每秒访问上限2000。

2024-03-03 15:34:05 537

原创 element cannot be mapped to a null key

这个错误是因为你试图使用 null 作为 Map 的键,这在 Java 中是不允许的。在你的代码中,item.get(“XXX”) 可能返回 null,这就导致了这个错误。要解决这个问题,你可以在使用 item.get(“XXX”) 之前检查它是否为 null。如果为 null,你可以返回一个默认值,以避免使用 null 作为键。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-12-27 11:07:59 4916

原创 org.activiti.engine.ActivitiIllegalArgumentException: Variables of type ByteArray cannot be used to

如果你在查询中使用了 ByteArray 类型的变量,Activiti 就会抛出这个错误。你应该检查你的代码,确保你没有尝试使用 ByteArray 类型的变量进行查询。如果需要,你应该将 ByteArray 转换为 Activiti 支持的其他类型,然后再进行查询。Activiti 是一个工作流引擎,它允许你在流程中使用变量。然而,Activiti 不支持使用 ByteArray 类型的变量进行查询。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-12-26 17:35:39 911

原创 Mybatis-plus 跳过全局变量的设置 ignoreQueryFilters

在Mybatis-plus中,如果你想在执行某些操作时跳过逻辑删除规则,你可以使用wrapper查询包装器的ignoreQueryFilters方法。这个方法可以让你在执行查询或更新操作时忽略全局的查询过滤器,包括逻辑删除过滤器。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-12-18 10:29:00 536

原创 Mybatis-plus 全局配置字段删除修改查询全局操作 GlobalConfig @TableLogic

在这个例子中,逻辑删除字段被设置为deleted,逻辑删除值被设置为1,逻辑未删除值被设置为0。这意味着,当你调用删除操作时,Mybatis-plus会将deleted字段的值更新为1,而不是真正地从数据库中删除记录。你可以在这里设置逻辑删除字段的名称,以及逻辑删除和未删除时的值。当你在实体类的某个字段上使用这个注解时,Mybatis-plus会知道这个字段是用于表示记录是否被删除的。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-12-18 10:20:31 709

原创 mybatis-plus进行数据操作不生效,update等操作不生效

确认是否开启了 MyBatis-Plus 自动填充功能: 如果在实体类中使用了 @TableField(fill = FieldFill.INSERT) 或 @TableField(fill = FieldFill.UPDATE) 注解,确保 MyBatis-Plus 的自动填充功能已经开启,否则字段可能不会被正确填充。检查是否设置了逻辑删除字段: 如果你使用了 MyBatis-Plus 的逻辑删除功能,确保在实体类中正确设置了逻辑删除字段,并且数据库中该字段的值符合预期。

2023-12-18 09:39:02 2495

原创 Cause: java.sql.SQLException: errCode = 2, detailMessage = 31434 have no queryable replicas. err: 31

检查数据库连接:你需要确保你的应用程序可以访问网络,并且可以连接到数据库。检查SQL语句:你需要确保你的SQL语句是正确的,并且可以在你的数据库中执行。检查数据库配置:你需要确保你的数据库配置正确,包括数据库地址、端口、用户名、密码等。你可以在你的应用程序的配置文件中检查这些配置。检查数据库状态:你需要确保你正在尝试查询的数据库副本正在运行,并且状态正常。你可以使用数据库管理工具来检查数据库的状态。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-12-11 15:24:29 1287

原创 GitLab 服务更换了机器,IP 地址或域名没有变化时,可能会出现无法拉取或提交代码的情况。

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-12-07 14:33:08 1343

原创 git报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

命令来删除 known_hosts 文件中这个主机的旧公钥,然后再次连接这个主机,SSH 客户端会将这个主机的新公钥保存到 known_hosts 文件中。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。也就是SSH密钥或者SSH证书发生了变化。

2023-12-07 14:24:28 1600

原创 雪花算法导致ID生成一致问题

雪花算法(Snowflake Algorithm)是 Twitter 开发的一种用于生成全局唯一 ID 的算法。节点 ID 重复:雪花算法依赖于节点 ID(包括数据中心 ID 和工作机器 ID)来区分不同的节点。如果多个节点使用了相同的节点 ID,它们可能会生成重复的 ID。在多机部署的情况下,一定要对数据中心 ID 和工作机器 ID进行固定的配置,才可以避免生成相同的ID。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-12-06 19:37:28 937

原创 远程调用后 List为什么会转换成LinkedHashMap

因此,为了能够正确地反序列化数据,接收方通常会将数据反序列化为一种更通用的类型,如 LinkedHashMap。具体来说,当你将一个对象序列化为 JSON 时,对象的类信息(包括泛型参数)会丢失,只剩下字段的名字和值。当你将 JSON 反序列化为对象时,如果没有提供具体的目标类,反序列化库(如 Jackson、Gson 等)通常会选择一个通用的类(如 LinkedHashMap)来存储字段的名字和值。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-12-06 19:33:44 610

原创 --enable-preview JDK预览新功能运行打包

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。以下这段代码是无法运行的。启动成功,并且可以打包。

2023-12-05 17:45:52 497

原创 Type definition error: [simple type, class xxx.xxx.xxx]; nested exception is com.fasterxml.jackson.d

这个错误是因为 Jackson 试图将 JSON 数据反序列化为 XXX类的实例,但是 XXX是一个接口或抽象类,Jackson 不知道应该实例化哪个具体的类。一种解决方法是创建一个 XXX 的具体实现类,并告诉 Jackson 使用这个类来反序列化 JSON 数据。你可以使用 @JsonDeserialize 注解来实现这个目标。// ...// 实现 HistoricProcessInstance 接口的方法我的Github地址。

2023-12-04 17:24:02 1389

原创 Java 锁 面试题(ReentrantLock、synchronized)

可重入锁是指同一个线程可以多次获得同一把锁,而不会被阻塞。ReentrantLock和synchronized都是可重入锁。概念,具体实现方式有很多种。乐观锁认为数据一般不会造成冲突,所以不会上锁,而悲观锁认为数据一般会造成冲突,所以会上锁。自旋锁是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU。公平锁是指多个线程按照申请锁的顺序来获取锁,非公平锁是非顺序的,非公平锁的优点在于吞吐量比公平锁大。

2023-05-28 03:44:08 1524

原创 线程池面试题

抛出来拒绝新任务的处理。:调用执行自己的线程运行任务,也就是直接在调用execute方法的线程中运行(run)被拒绝的任务,如果执行程序已关闭,则会丢弃该任务。因此这种策略会降低对于新任务提交速度,影响程序的整体性能。如果您的应用程序可以承受此延迟并且你要求任何一个任务请求都要被执行的话,你可以选择这个策略。:不处理新任务,直接丢弃掉。:此策略将丢弃最早的未处理的任务请求。通过构造函数来创建(推荐)。

2023-05-28 03:41:40 1578 1

原创 ArrayList扩容机制

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-05-28 03:39:53 444

原创 HashMap 、 HashSet 、 Hashtable 、 ConcurrentHashMap 、TreeMap 的区别是什么

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-05-28 03:37:23 2108

原创 HashMap面试题

为了减少哈希冲突,提高查询效率。数组大小是 2 的幂次方,那么取模运算可以转化为位运算,效率更高。

2023-05-28 03:37:20 807

原创 List Set Map Queue Deque 之间的区别是什么?

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-05-28 03:34:29 750

原创 ArrayList(数组) 和 LinkedList(双向链表) 的区别是什么?使用ArrayList而不使用LinkedList的原因

[toc](ArrayList(数组) 和 LinkedList(双向链表) 的区别是什么?使用ArrayList而不使用LinkedList的原因)

2023-05-28 03:34:05 712

原创 Java 集合面试题、Map面试题、List面试题等

为了减少哈希冲突,提高查询效率。数组大小是 2 的幂次方,那么取模运算可以转化为位运算,效率更高。

2023-05-28 03:33:33 886

原创 Spring支持哪些Aware接口?

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。这两个的区别不如说是ApplicationContext和BeanFactory的区别。

2023-05-26 12:19:30 904

原创 Spring框架中有哪些不同类型的事件

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-05-26 12:16:53 979

原创 自动 装配

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-05-26 12:16:51 1102

原创 Spring事务的实现方式

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。Spring事务的实现方式主要有两种:编程式事务管理和声明式事务管理。Spring事务是和数据库事务保持一致。

2023-05-26 12:16:05 1178

原创 Spring的Bean的作用域

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-05-26 12:15:17 1567

原创 Spring如何解决循环依赖问题

Spring在单例模式下的setter方法依赖注入引起的循环依赖问题,主要是通过二级缓存和三级缓存来解决的,其中三级缓存是主要功臣。第二种setter方法(多例)的情况下,每一次getBean()时,都会产生一个新的Bean,如此反复下去就会有无穷无尽的Bean产生了,最终就会导致OOM问题的出现。在Spring中,只有第(3)种方式的循环依赖问题被解决了,其他两种方式在遇到循环依赖问题时都会产生异常。第一种构造方法注入的情况下,在new对象的时候就会堵塞住了,其实也就是”先有鸡还是先有蛋“的历史难题。

2023-05-26 12:14:34 1439

原创 Spring的Bean的生命周期

对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。①如果这个Bean实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,传入Bean的名字;当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现的destroy()方法;

2023-05-26 12:13:38 2528

原创 Spring框架中的Bean是线程安全的么?如果线程不安全,那么如何处理?

【代码】Spring框架中的Bean是线程安全的么?如果线程不安全,那么如何处理?

2023-05-25 21:44:38 275

原创 BeanFactory和ApplicationContext有什么区别?

(1)BeanFactory是Spring里面最底层的接口,是IoC的核心,定义了IoC的基本功能,包含了各种Bean的定义、加载、实例化,依赖注入和生命周期管理。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。是Spring的两大核心接口,都可以当做Spring的容器。和ApplicationContext。

2023-05-25 21:43:55 1822

原创 JDK动态代理和CGLIB动态代理

JDK动态代理只提供接口的代理,不支持类的代理,要求被代理类实现接口。JDK动态代理的核心是InvocationHandler接口和Proxy类,在获取代理对象时,使用Proxy类来动态创建目标类的代理类(即最终真正的代理类,这个类继承自Proxy并实现了我们定义的接口),当代理对象调用真实对象的方法时,CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。args 是被代理目标实例某个方法的具体入参, 在方法反射调用时使用。

2023-05-25 21:43:25 2935

原创 IOC 和 AOP 的联系和区别

IoC让相互协作的组件保持松散的耦合,而AOP编程允许你把遍布于应用各层的功能分离出来形成可重用的功能组件。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-05-25 21:43:12 98

原创 JDK动态代理和CGLIB动态代理

JDK动态代理只提供接口的代理,不支持类的代理,要求被代理类实现接口。JDK动态代理的核心是InvocationHandler接口和Proxy类,在获取代理对象时,使用Proxy类来动态创建目标类的代理类(即最终真正的代理类,这个类继承自Proxy并实现了我们定义的接口),当代理对象调用真实对象的方法时,CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。args 是被代理目标实例某个方法的具体入参, 在方法反射调用时使用。

2023-05-25 21:42:54 2046

原创 Spring-AOP是什么

(2)Spring AOP使用的动态代理,所谓的动态代理就是说AOP框架不会去修改字节码,而是每次运行时在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法。面向切面编程,是对OOP的补充,它允许开发者定义横向关系,将系统中的关注点分离出来形成一个独立的模块,这个模块被称为切面,它的作用是与业务逻辑无关的,但是又为业务逻辑模块所共同调用。AOP实现的关键在于 代理模式,AOP代理主要分为静态代理和动态代理。

2023-05-25 21:41:56 2888

原创 DI是什么

欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。依赖注入,指的是由Spring容器在运行期间,动态地将某种依赖关系注入到对象之中。

2023-05-25 21:41:12 2938

原创 Spring-IOC是什么

Spring-IOC是Spring框架的核心,是一个容器,它负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

2023-05-25 21:40:38 2879

原创 IOC初始化 IOC启动阶段 (Spring容器的启动流程)

[toc](IOC初始化 IOC启动阶段 (Spring容器的启动流程))

2023-05-25 21:36:54 2340

空空如也

空空如也

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

TA关注的人

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