自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java 数据清洗 List集合去重

方案,结合。

2025-07-01 10:36:06 432

原创 多线程同步与任务完成等待机制总结

在多线程编程中,合理的同步机制能够有效地协调多个线程之间的执行顺序,确保任务按照预期执行。常见的同步机制包括和Phaser。接下来,我们将通过具体场景加伪代码示例来介绍这些同步工具的应用。在 Java 中,不同的同步工具有不同的适用场景。根据项目的具体需求,选择合适的同步机制能提高并发性能并避免线程安全问题。:用于等待所有线程完成,适合任务依赖的场景。:适用于多线程到达某个同步点后一起继续执行,常用于周期性任务。:适用于处理异步任务,能灵活地组合任务。:适用于确保一组任务完成后执行汇总操作。

2025-01-14 11:28:42 1466

原创 Spring Boot 项目启动后自动加载系统配置的多种实现方式

在 Spring Boot 项目中,可以通过以下几种方式实现。

2025-01-14 11:08:29 1039

原创 扫普通链接二维码打开小程序 动态匹配参数

为了提高活动预约效率,公司希望通过微信小程序,让用户扫描二维码提前预约活动,避免现场排队。具体流程如下:后台管理系统自动生成包含活动ID、活动名称等参数的二维码,用户扫描二维码后,能够跳转到小程序的活动预约页面。【核心点:二维码中 要动态传递多个参数】

2025-01-10 18:02:25 2818

原创 Docker部署开发环境【开篇】

【代码】Docker部署开发环境【开篇】

2024-12-30 10:09:48 292

原创 Spring Cloud Feign Client 中 @Qualifier 使用问题及解决方案

使用全限定类名。显式指定 FeignClient 的contextId。简化配置,通过类型直接注入(适用单实现场景)。这些方法可以有效提升项目代码的健壮性和可维护性,同时避免常见的 Spring Bean 注入问题。

2024-12-29 02:03:41 681

原创 编程术语:BO、VO、PO、DO、DTO全解析

编程术语:BO、VO、PO、DO、DTO全解析便于理解,我这里使用一张图来进行讲解。

2024-12-22 00:54:07 384

原创 前后端数据格式转换:日期字符串到时间戳的最佳实践

/ 定义日期格式 DateTimeFormatter formatter = DateTimeFormatter . ofPattern("yyyy-MM-dd");// 转换为 LocalDate LocalDate localDate = LocalDate . parse(dateStr , formatter);

2024-12-19 17:23:28 565

原创 接口幂等性常见的解决方案【精华版】

接口幂等性常见的解决方案

2024-11-28 17:02:41 1429

原创 IDEA中service启动类是灰色,而且启动类经常自动消失解决方法

原因:IDEA启动大于5个Services的时候就会让新启动的变成灰色,并且重启IDEA之后在Services里找不到相关启动类。通过调整设置增加保留的启动服务数量,解决自动消失的问题。此方法适用于 IDEA 2023.2.1+ 版本。

2024-11-14 10:39:06 1933 1

原创 电商大促流量 “爆雷” 记:4M 宣传图 + 多 SKU 轮播图,靠 OSS 优化省 80% 成本

你有没有遇到过这种崩溃场景?平时商品缩略图300kb/张还算可控,但一到节假日、大促活动,4M/张的宣传图+同一SPU下不同SKU的轮播图+页面背景图叠加,OSS流量直接翻倍暴涨——我们曾在一次618大促中,单日OSS流量从日常800GB冲到3200GB,月均成本多花3.5万,更别提4G用户加载页面时的“转圈等待”,直接导致活动页跳出率飙升18%。如果你做的电商平台也有“多SKU轮播图+大促高清宣传图+背景图”的组合场景,这篇文章会提前给你预警隐藏的流量陷阱;

2025-11-12 16:35:06 874

原创 轻量实用的 XML 与 JSON / 对象互转工具类(Jackson 实现)

这个工具类基于Jackson实现,兼顾了轻量性和实用性,移除了日志依赖,适合作为基础组件嵌入各类Java项目。它解决了日常开发中XML与JSON、Java对象转换的核心需求,同时处理了版本兼容、异常封装、输入验证等细节问题,让开发者无需关注底层实现,直接调用静态方法即可完成转换。如果需要扩展功能(如JSON转XML、支持更多输入源),可以基于现有代码轻松扩展。工具类的方法命名规范、注释清晰,上手成本极低,推荐在实际项目中使用。

2025-10-31 13:12:20 894

原创 API请求 之 OkHttp3 常用高频操作

/ 重试拦截器@Overridei++) {// 重试前等待try {try {= null) {// 使用自定义拦截器.build();

2025-10-30 10:22:39 379

原创 MySQL逗号分隔字段-历史遗留原因兼容方案

/ 基础查询// 根据supplier_id查询// 更新操作// 删除操作操作类型推荐方案注意事项查询或LIKE注意性能问题,大数据量需要优化添加先查询再拼接,避免重复处理空值和边界情况移除Java逻辑处理更安全注意逗号边界处理批量在Service层处理逻辑保证事务一致性短期:使用上述方案维持现有功能中期:考虑添加缓存优化查询性能长期:推动表结构重构,使用关联表方案这种逗号分隔的字段设计虽然不符合数据库范式,但在现有系统下通过合理的技术方案可以稳定运行。

2025-10-29 15:57:48 478

原创 第三方平台令牌管理:从数据库设计到保活实践

多平台兼容:通过token_type支持不同授权协议、不同主体的令牌;安全可靠:敏感字段加密、并发控制、状态流转,避免令牌泄露和重复刷新;自动保活:定时任务+异常处理,实现令牌生命周期自动化管理,减少人工干预;可观测性:操作日志+监控告警,故障可追溯、问题可快速定位。在实际落地时,需结合业务场景(如是否需要多租户、是否有高安全需求)调整表结构和逻辑,确保方案适配自身系统。

2025-10-13 11:37:49 585

原创 Java Map使用数字类型(Long/Integer)作为Key的隐藏陷阱与避坑指南

类型一致性优先:存入 Map 时的 Key 类型,必须与取出时的 Key 类型完全一致(如Long存就用Long取,避免intInteger混用)。优先选择类型安全的集合:在无需修改 Map 的场景下,优先使用 Guava或 Java 9+Map.of(),从 API 层面杜绝类型错误。依赖工具辅助检查:集成静态代码分析工具(如 SpotBugs、SonarQube),让工具自动发现“类型不匹配”的潜在问题,减少人工排查成本。Java 中的“类型安全”是编写健壮代码的基础,尤其是在Map。

2025-09-26 11:33:03 934

原创 OssUpload 组件设计方案与使用说明文档

参数名类型必填默认值说明示例值oss-dirString是OSS存储目录,首字符不能是,末尾建议加Number否5签名URL过期时间(1~15分钟)10Number否100最大文件大小(单位:MB)50api-configObject否见组件默认值接口参数/响应映射配置,用于适配不同后端格式见下文“自定义接口映射”若后端接口参数名不同(如ossDir叫,响应叫uploadUrl<template><script>data() {return {

2025-09-16 15:35:14 893

原创 IT需求提示未读信息查询:深度技术解析与性能优化指南【类似:钉钉已读 功能】

通过以上深度优化,未读信息查询的响应时间可从秒级降至毫秒级,支撑高并发业务场景(如10万用户同时在线查询)。:先查已读ID到内存,再批量查询未读(适合应用层优化))是性能瓶颈的核心,其索引设计直接决定查询效率。确保优化器获取准确的行数估算,避免错误的执行计划。的记录)中排除"用户已读集合"(:已读表索引碎片化严重时(:需从"有效提示集合"(未读信息查询的本质是。

2025-09-04 14:30:32 800 1

原创 Java 中使用 Stream 将 List 转换为 Map 实战笔记(生产级版)

下文示例基于User类,含常见属性及 getter 方法(生产中建议用 Lombok 简化,@Data@Data // Lombok 注解:自动生成 getter/setter/equals/hashCode/toString// 包装类型,可能为 null(需特别处理)// 可能为 null// 基本类型,无 null 问题生产级首选// 自定义复合 Key(必须不可变 + 重写 equals 和 hashCode)

2025-07-11 14:35:07 1001

原创 IDEA Maven报错 无法解析 com.taobao:parent:pom:1.0.1【100%解决 此类型问题】

淘宝/阿里巴巴的一些内部依赖可能不在公共Maven中央仓库或阿里云公共仓库中。这是一个警告,指出你的POM文件中存在重复的Lombok依赖声明,虽然不会直接导致构建失败,但建议清理。POM,你可能需要联系Lazada API提供者获取正确的依赖配置,或者考虑使用其他版本的SDK。的路径,无论你有没有成功拉取到这个依赖,在刷新依赖时,Maven都会给你创建这个路径。从提供的Maven构建错误信息来看,当前的主要问题是Maven无法解析。这通常意味着Maven在你配置的仓库中找不到这个POM文件。

2025-07-08 18:44:22 1113

原创 Jackson JSR310 日期反序列化问题解决方案

在Spring Boot微服务项目中,使用Java 8时间API(如)配合Jackson处理JSON序列化时,核心现象:含日期字段的JSON请求解析失败,控制台报错指向方法。

2025-06-27 11:23:45 688

原创 Java通用实体验证框架:从业务需求到可复用代码的完整实现

目标:除字段一致性外,支持任意业务规则(如金额限制)/*** 通用实体验证框架* @param <T> 待验证的实体类型// -------------------- 字段一致性验证 -------------------- /*** 添加字段一致性验证规则* @param fieldExtractor 字段提取函数(如T::getField)* @param fieldName 字段名称(用于错误信息)* @param <V> 字段类型。

2025-06-10 16:39:46 811

原创 Java 通用实体验证框架:从业务需求到工程化实践【生产级 - 适用于订单合并前置校验】

本文介绍了Java通用实体验证框架的设计演进过程。针对传统验证方式存在的代码冗余、维护困难等问题,提出了分阶段改进方案:首先封装基础字段验证逻辑,然后通过泛型化改造支持任意实体类型,最终构建完整框架支持自定义规则。框架核心包括字段一致性验证(通过函数式接口提取字段)和自定义规则验证(支持Lambda表达式),实现了验证逻辑的可复用、易维护和强扩展性。该方案适用于订单合并等需要前置校验的业务场景,显著提升了代码质量和开发效率。

2025-06-10 16:38:17 1203

原创 数据库字段唯一性修复指南:从设计缺陷到规范实现

通过添加唯一约束或数据迁移方案,可有效解决字段重复问题,保障数据一致性。实施前需根据数据量、业务影响范围选择合适方案,优先处理历史重复数据,并通过索引验证与持续监控确保约束生效。规范化表设计应在初期明确唯一性规则,减少后期维护成本。

2025-05-14 18:01:53 877

原创 在MyBatis Plus里处理LocalDateTime类型

类型时,你要确保数据库字段和Java实体类属性之间的类型映射是正确的。要是自动配置不满足需求,你可以自定义类型处理器。通过上述配置,MyBatis Plus就能顺利处理。类型了,包括数据的读写操作以及自动填充功能。在MyBatis Plus里处理。在实体类里直接把属性定义成。要保证数据库字段类型和。

2025-05-12 16:39:00 1433

原创 在 Java 8 中 常用时间日期类

Java 8 的日期时间 API 设计更加合理,避免了旧 API 的线程安全问题和设计缺陷。日期:用LocalDate时间:用LocalTime日期+时间:用带时区的完整时间:用时间戳:用Instant计算间隔:用Duration(时间)或Period(日期)格式化/解析:用不可变性:所有类都是不可变的,线程安全。清晰的命名:类名直观(如LocalDate丰富的 API:内置大量工具方法,减少手动计算。时区支持:彻底解决旧 API 的时区问题。避免混用新旧 API,必要时通过Instant或。

2025-05-12 16:17:10 1218

原创 SQL分组统计与业务指标计算知识点笔记

分组统计是 SQL 数据分析的核心能力,通过合理组合 GROUP BY、聚合函数、条件判断,可高效实现多维度业务指标计算。关键在于:明确业务需求与指标定义严格处理 NULL 值和状态条件优化查询性能与命名规范数据脱敏保护业务隐私掌握这些要点,能有效提升数据统计的准确性和开发效率,适用于电商、物流、零售等多个领域的业务分析场景。

2025-05-12 14:40:45 864

原创 MyBatis 动态 SQL 详细指南【完整示例】

创建一个名为 的用户表,表结构如下:二、MyBatis 基础元素1. Java Bean 的 ORM 映射对象2. 标签 是 MyBatis 映射文件的根标签,通过 属性指定对应的 Mapper 接口全限定名,实现 XML 映射文件与 Java 接口的关联。示例如下:3. 标签用于定义数据库表字段和 Java 对象属性的映射关系,尤其在表字段名与对象属性名不一致时非常有用。对应的 配置如下:4. 标签用于定义可复用的 SQL 片段,提高代码的可维护性和复用性。通过 标签引用这

2025-05-08 15:23:43 1178

原创 MyBatis 动态 SQL 完整笔记

if>:基础条件判断示例:根据name和age动态筛选用户</:多条件分支示例:类似 Java 的,优先匹配首个满足条件的<when></</</

2025-05-08 14:27:59 804

原创 MyBatis-Plus 非 Spring 环境使用时 `GenericTypeResolver` 缺失问题总结

问题描述在非 Spring 环境中使用MyBatis-Plus 3.4.3.1 及以上版本at com该错误是由于 MyBatis-Plus 的部分工具类依赖 Spring 核心库中的类,但项目未引入 Spring 相关依赖导致的。问题原因依赖变化MyBatis-Plus 从3.4.3.1 版本开始,其内部反射工具类(如)直接依赖 Spring 的,用于处理类型解析逻辑。

2025-05-05 10:50:24 740

原创 OkHttp3.X 工具类封装:链式调用,支持HTTPS、重试、文件上传【内含常用设计模式设计示例】

/ 创建自定义Client(添加拦截器+长超时)// 使用自定义Client发起请求开发效率提升:链式API简化网络请求编写可维护性强:统一配置入口,修改全局参数方便安全性增强:标准化HTTPS证书管理健壮性保障:内置重试机制和异常处理适合中大型项目作为基础网络组件使用,建议根据实际业务需求调整超时时间和重试策略。

2025-05-01 17:40:29 1508

原创 Maven 手动添加 JAR 包到本地仓库笔记

命令将本地 JAR 文件安装到 Maven 本地仓库((优先推荐配置镜像仓库或 Nexus 私有库)。手动安装依赖是绕过自动下载的应急方案,但需注意。Maven 默认从中央仓库(),使其能被项目识别为依赖。

2025-04-23 16:30:08 1081

原创 微服务无感发布实践:基于Nacos的客户端缓存与故障转移机制

客户端侧:缩短缓存刷新周期 + 启用故障转移机制;服务提供者侧:优雅停机流程 + 主动心跳同步;基础设施侧:Nacos集群高可用 + Kubernetes生命周期钩子;监控验证:通过Nacos控制台、Ribbon调试日志及链路追踪(如SkyWalking)实时监控实例状态。通过上述方案,即使服务实例A的两个节点同时下线,客户端仍能在5秒内完成服务列表更新,用户侧请求成功率可达99.99%。

2025-04-08 11:09:45 1283

原创 在Spring框架中使用AspectJ实现AOP(面向切面编程)

封装横切关注点(如日志、事务)的模块,通过@Aspect注解标记类,包含和的定义。定义需要拦截的目标方法,使用表达式(如execution)描述匹配规则。指定切面逻辑在何时执行,分为五种类型:•:方法执行前•:方法执行后(无论是否异常)•:方法正常返回后•:方法抛出异常时•:包裹目标方法,可控制其执行流程。</</</</</</</在Spring Boot主类添加•Spring默认使用JDK动态代理(需接口),若目标类无接口则切换为CGLIB。

2025-04-01 11:11:41 1096

原创 Centos7拉取编译运行SpringBoot【自动化部署脚本】

根据您的需求,这里是为脚本添加了自定义工具路径的改进版本,包含路径检查和环境变量设置:更新说明:路径配置灵活性:• 新增、、三个可配置路径• 用户可指定自定义安装路径,留空则自动检测系统路径• 路径检查包含有效性验证(存在性、可执行性)智能路径处理:增强环境验证:• 安装完成后显示各工具版本信息• 严格校验路径有效性,避免错误配置导致后续失败路径优先级规则:使用建议:自定义路径使用场景:生产环境推荐配置:• 建议显式指定路径以确保版本一致性• 关闭自动安装功能(

2025-03-24 15:26:41 858

原创 Vue项目与云管平台Nginx部署笔记

使用生成/dist目录,然后将dist目录下面的所有文件,上传到虚拟机目录下面70717072。

2025-03-24 15:23:04 348

原创 Git Clone 指定分支

当需要克隆特定分支而非默认的分支时,使用-b参数可直接拉取指定分支,避免后续切换分支的繁琐操作。

2025-03-21 13:36:25 3943

原创 Docker搭建Redis哨兵模式【一主两从三哨兵】

官方文档关联博客Redis 主从复制,在后续配置从节点时会用到。

2025-03-10 14:46:50 1595

原创 MySQL 中如何解决深度分页的问题?& MySQL中 join、inner join、left join、right join区别

方法优点缺点适用场景子查询 + 覆盖索引支持跳页,通用性强依赖联合索引设计需频繁分页且允许跳页记录最大 ID性能最优,复杂度低仅支持连续分页连续分页(如瀑布流)适合复杂搜索,分布式性能好维护成本高,ES 需额外学习高并发搜索+分页场景核心要点索引设计是优化基础,确保覆盖索引和排序字段匹配。权衡业务需求,优先选择游标分页(记录max_id)或延迟关联(子查询)。搜索引擎适用于复杂查询,但引入额外组件需评估成本。

2025-02-27 18:55:25 1204

原创 Spring Boot 自定义 Starter 完整实战手册

若需支持 Spring Boot 3.x,需 JDK 17+ 并检查依赖兼容性。:Spring Boot 2.7+ 已弃用。中的参数映射到 Java 对象。

2025-02-27 11:26:03 1232

基于官网最新稳定版 redis 6.2.6 版, Windows x64 平台源码编译

基于官网最新稳定版 redis 6.2.6 版, Windows x64 平台源码编译 bin 目录里为 Windows 版 Redis

2022-03-23

8个常见数据结构排序算法总结API

文档格式是chm文档,方便查看,点击即可快速浏览排序算法,里面的程序可以直接拿来用,实现语言是标准的C程序。

2021-01-05

空空如也

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

TA关注的人

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