-
Java 线程状态详解
在 Java 中,Thread 类定义了 6 种线程状态,这些状态描述了一个线程的生命周期中的不同阶段。理解这些状态对于编写多线程程序、调试和优化性能非常重要。本文将详细介绍这六种线程状态,并通过示例代码演示每种状态的行为。此外,还将讨论一些常见的线程方法(如 Thread.sleep() 和 Object.wait())是如何影...7个月前 阅读239
-
使用springboot简单实现无感知的刷新 Token功能
实现无感知的刷新 Token 是一种提升用户体验的常用技术,可以在用户使用应用时自动更新 Token,无需用户手动干预。这种技术在需要长时间保持用户登录状态的应用中非常有用,比如在一些需要频繁访问服务器资源的WEB和移动应用。以下是使用Spring Boot实现无感知刷新Token的一个场景案例和相应的示例代码。场景案例假设我...7个月前 阅读239
-
@Transactional 注解的错误使用场景
不必要的使用场景1. 无需事务的方法:问题描述:在只包含查询或只读操作的方法上使用@Transactional是不必要的,因为这些操作不需要事务管理。示例代码:@Transactional public String testQuery() { standardBak2Service.getById(1L); return "testB"; } 详细说明:...7个月前 阅读225
-
掌握Kafka事务,看这篇就够了
Kafka事务实际上引入了原子多分区写入的概念,Federico Valeri播客画了以下流程图,展示了事务在分区级别如何工作。1. Kafka事务1.1 Kafka事务是什么面试官:Kafka事务你说说看?Kafka的事务主要应用在以流式处理的应用程序中,流式处理?听起来都觉得很迷糊不知道是什么东西。Kafka事务支持的流式处理过程一般是这...7个月前 阅读248
-
127.0.0.1 和 localhost,如何区分?
在实际开发中,我们经常会用到 127.0.0.1 和 localhost,那么,两者到底有什么区分呢?这篇文章,我们来详细了解 127.0.0.1 和 localhost。127.0.0.1127.0.0.1 是一个特殊的 IPv4 地址,通常被称为“环回地址”或“回送地址”。它被用于测试和调试网络应用程序。当你在计算机...7个月前 阅读266
-
深度解读:Spring.3版本自动装配机制的演变与实践
前言今天,我们将开启对Spring-AI系列源码的讲解。请大家不急不躁,我会逐步深入,每次专注于一个知识点,以防让人感到困惑。首先,源码的讨论自然离不开自动装配。有人可能会问,之前已经讲解过这个内容了,为什么还要再谈一次?这是因为自Spring Boot 3.3.x版本以来,自动装配的机制发生了一些变化。尽管如此,凭借...7个月前 阅读254
-
神奇的 SQL 之 Index Condition Pushdown,这可是个好优化
基础回顾回表 和 索引覆盖 可是面试中的常见面试题,我们一起来回顾下,先准备点基础数据,建表 tbl_indexCREATE TABLE tbl_index ( c1 INT, c2 INT, c3 CHAR(1), PRIMARY KEY(c1), KEY idx_c2 (c2) ); 索引覆盖如果 w...7个月前 阅读249
-
spring太强了,深度解析:Spring MVC 如何巧妙获取方法参数名
1. 如何通过 Java 反射获取方法的参数名?获取参数名是一个非常有用的技巧,例如 Spring MVC Controller 中可以根据参数名自动注入对应参数值。不仅Spring框架如此,我们自己开发的框架有时候也需要此项能力。例如我前些日子分享的日志工具,UserLog 注解可实现从 UserOrder中提取 userId 和 orderId,并将其...7个月前 阅读266
-
说说Vue3中provide、inject的源码和使用技巧
使用Vue从父组件传递数据到子组件,一般使用defineProps就能满足大部分场景,但如果要跨多层级组件传递数据,则可使用provide和inject。从provide和inject组合字面理解,类似于依赖注入模式,本篇内容将从provide、inject的实现原理来分析使用中的一些技巧。provide、inject简介来自官网的介绍:一个父组件相对于其所有的后...8个月前 阅读287
-
在Vue3中高级前端是这样给按钮添加loading效果的
前言一个页面有多个按钮,每个按钮都要添加loading效果,高级前端是如何在Vue3控制按钮是否显示loading效果的呢?普通前端我们先来看看初级普通前端平常是怎么给按钮添加loading效果的:<script setup > import { ref } from 'vue' const asyncFn = () => new Promise(res...8个月前 阅读278