- 博客(156)
- 收藏
- 关注
原创 Spring源码剖析--事务篇
文章主要介绍了事务的实现方式,包括JDBC和Spring两种方式。同时,也介绍了事务管理器TransactionManager和事务定义TransactionDefinition等核心概念。文章还通过实验和总结的方式,详细介绍了事务的提交和回滚过程,并阐述了如何使用@Transactional注解实现事务传播行为。最后,文章提炼了事务的实现在于通过TransactionInterceptor注入容器中,并总结了事务传播行为的实现方式。
2023-06-14 23:04:55
993
2
原创 Java分页查询方式总结
MySQL的实际处理过程是:从存储引擎中读取满足条件的前 100010 (OFFSET + LIMIT) 条记录,在服务层(Server Layer)对这些记录进行排序,抛弃前面的 100000 条记录,返回最终的 10 条记录。所以,OFFSET 值越大,MySQL需要扫描、加载并最终抛弃的行数就越多,这导致了巨大的I/O和CPU资源浪费,是性能下降的直接原因。核心思想:先通过覆盖索引快速定位到目标页的主键ID,然后再关联原表获取完整的行数据,从而减少对主表数据的扫描。1)延迟关联:优化后的写法。
2026-01-04 19:03:55
871
原创 Kafka调试技巧分享
本文介绍了Kafka消费机制和调试方法。在消费组机制下,消息可能被多台机器消费,取决于配置策略。新增机器时偏移量处理方式由auto.offset.reset参数控制。针对本地调试,可通过@KafkaListener指定分区和偏移量来重复消费特定消息。对于线上环境,提供了通过接口重新消费指定消息的方案,包括创建临时消费组、定位偏移量和单条拉取消息的实现代码。文中还给出了Kafka连接配置示例,帮助开发者快速实现消息重消费功能。这些方法可以有效解决开发和测试过程中需要重复消费特定消息的需求。
2025-12-28 14:52:19
510
原创 深入解析线程池拒绝策略:保障系统稳定运行的守护者
本文深入解析Java线程池的四种拒绝策略:1)CallerRunsPolicy:调用线程直接执行任务,适用于不允许丢失但可接受延迟的场景;2)AbortPolicy(默认):抛出异常,适合关键业务;3)DiscardPolicy:静默丢弃,用于非关键任务;4)DiscardOldestPolicy:丢弃队列最老任务并重试当前任务,适用于实时数据更新系统。文章详细阐述了各策略的触发时机、实现机制、适用场景及风险提示,帮助开发者根据业务特性选择合适的拒绝策略。
2025-12-12 19:19:08
926
原创 ES 别名:核心用法与避坑
Elasticsearch别名功能摘要 ES别名是指向物理索引的逻辑引用,类似快捷方式,实现应用与索引的解耦。核心价值包括:1)平滑索引切换(原子化更新别名,无需停机或改代码);2)灵活分片管理(通过别名聚合多索引查询)。版本演进从0.90的基础功能到7.x与ILM深度集成,支持过滤、多索引读写分离等特性。典型实践如:数据迁移时通过别名切换实现零停机,或按月分片索引后使用别名统一查询。别名层显著提升运维灵活性,避免硬编码索引名带来的维护成本。
2025-10-18 14:19:47
1082
原创 告别手动录入!Python 借助 xmind2testcase 把 XMind 思维导图转成 CSV 导入禅道
在测试工作中,很多人习惯用 XMind 思维导图梳理测试用例,但禅道等管理工具常需 CSV 格式的用例文件,手动转换不仅耗时还易出错。本文将手把手教你用 Python 结合xmind2testcase工具,实现 “XMind 思维导图→CSV 用例文件→禅道导入” 的全流程自动化:先讲解环境配置(Python、xmind2testcase 安装),再演示思维导图规范设计(确保字段匹配禅道需求),接着用代码 / 命令行完成格式转换,最后说明 CSV 导入禅道的操作细节。整个过程无需复杂编码,新手也能快速上手,
2025-10-10 14:47:20
556
原创 SpringBoot查询方式全解析
本文介绍了Spring Boot中HTTP请求方法的使用规范及常用注解分类。GET方法适用于幂等查询操作,而POST/PUT/DELETE分别对应增改删操作。文章详细分类了请求映射、参数绑定、控制器增强等六大类注解,并提供了路径变量、查询参数、实体类参数三种查询方式的代码示例。最后介绍了@JsonAlias和@JsonProperty等扩展参数,用于处理JSON数据绑定中的字段别名问题。这些内容为Spring Boot开发提供了清晰的HTTP接口设计指南。
2025-08-10 16:55:12
1064
原创 Swagger简单入门
本文介绍了Swagger常用的26种注解及其用法,如@Api标记类、@ApiOperation描述接口、@ApiModel定义模型等,用于增强API文档的可读性。还提供了Knife4j的集成方法,包括依赖配置和Spring Boot的Docket配置示例,支持分组显示API文档。这些注解和工具能够帮助开发者快速生成规范的API文档,提升开发效率。
2025-06-28 17:52:23
649
原创 CountDownLatch、CyclicBarrier 和 Semaphore
主要介绍了Java并发编程中三个重要的同步工具:CountDownLatch、CyclicBarrier和Semaphore,它们的原理,使用场景...
2024-05-09 21:38:02
1731
原创 协程:轻量级多线程编程的解决方案
本文全面探讨了协程这一轻量级多线程编程的概念、原理、实现与应用。从概念引入到实际案例分析,文章详细阐述了协程与线程的区别、Kilim协程框架的原理以及如何在实践中运用协程解决并发问题。文章还特别针对在打印文字和推荐算法两个案例中,使用多线程和协程的效率进行了比较,证明了协程在处理高并发场景时的优越性。
2024-04-15 21:02:28
1441
原创 SpringBoot支持哪些日志框架?推荐和默认的日志框架是哪个?
本文详细探讨了Spring Boot所支持的日志框架,包括Logback、Log4j2等,并阐述了这些框架的特点和使用方法。
2024-02-19 20:53:19
3743
原创 BeanUtils和BeanCopier性能复制Bean工具比较
本文对BeanUtils和BeanCopier两种常见的Bean复制工具进行了性能比较。通过实验测试,发现BeanCopier在性能上优于BeanUtils,尤其是在复制大型Bean对象时表现更佳。本文还深入分析了两种工具的原理,并指出了各自的优势和适用场景。
2024-01-28 16:40:07
956
原创 博客文章质量分数列表【分页、排序、搜索】
本文首先分析了官方提供的查询,然后实现前端和后端,详细阐述了实现效果,最后总结了出现安全验证和401 Unauthorized错误的原因。
2024-01-28 16:36:05
1630
原创 在1G的内存中,对百亿个QQ号去重?
在内存有限的情况下,如何对大量数据进行去重是一个具有挑战性的问题。本文将介绍在1G内存中,对百亿个QQ号进行去重的方法。我们将通过公共方法、HashSet、Java8的Stream、Segment、BloomFilter和BitMap等不同方式来实现。这些方法各有优缺点,适用于不同的情况。通过对这些方法的比较和分析,我们可以得出在特定情况下最有效的去重方法。在处理大规模数据时,我们需要考虑内存使用、去重效率和准确性等因素。通过优化数据结构和算法,我们可以提高处理大规模数据的效率,并解决实际应用中的问题。
2024-01-10 22:47:12
1210
原创 BloomFilter和BitMap的介绍与使用
本文介绍了BloomFilter和Bitmap两种数据结构,并对其使用场景进行了概述。同时,也讨论了它们之间的区别。
2024-01-10 22:43:14
1289
原创 类注册到Spring容器,类实现的接口可以获取到该类的bean实例?
主要探讨了Spring框架中Bean的实例化、注册以及依赖注入的相关内容。
2024-01-09 20:51:26
1251
原创 @Async坑:Null return value from advice does not match primitive return type for
主要探讨了@Async方法的特点,包括其不能有返回值、报错原因以及为什么@Async方法的返回值不能是基本类型。然后,文章提供了针对该报错的解决方案。最后,通过拓展部分,讨论了项目中阻塞等待异步方法返回值的常见用法以及异步方法内部调用的其他潜在问题。
2024-01-08 19:44:27
1858
原创 分布式锁实现方案汇总
本文对几种主流的分布式锁实现技术进行了详细的探讨,包括Redis、Zookeeper、Etcd、MySQL,并通过秒杀案例进行应用实践。同时也对一些常见的问题进行了总结。在每种锁的实现中,文章详细介绍了核心代码、单元测试和SpringBoot应用。通过这些技术,可以有效地解决分布式系统中的并发问题,保证数据的一致性和系统的稳定性。
2024-01-08 19:38:30
1479
原创 PostgreSQL表全解
本文概述了数据库中的关键概念,包括约束、触发器、表空间、视图、索引和物化视图。约束用于确保数据的完整性,包括主键、非空、唯一、检查、外键和默认值。触发器用于在数据库操作前、后自动执行特定的操作。表空间是数据库中存储数据的位置。视图是一个虚拟表,基于一个或多个实际表的查询结果。索引用于加快数据检索速度,分为基本概念、分类和创建方式。物化视图是预计算的视图,用于提高复杂查询的性能。这些概念在数据库设计和管理中起着重要作用,帮助提高数据的一致性和完整性,并优化查询性能。
2024-01-02 21:59:03
1601
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅