- 博客(59)
- 资源 (2)
- 收藏
- 关注

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

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

原创 Spring Cloud Feign Client 中 @Qualifier 使用问题及解决方案
使用全限定类名。显式指定 FeignClient 的contextId。简化配置,通过类型直接注入(适用单实现场景)。这些方法可以有效提升项目代码的健壮性和可维护性,同时避免常见的 Spring Bean 注入问题。
2024-12-29 02:03:41
547

原创 前后端数据格式转换:日期字符串到时间戳的最佳实践
/ 定义日期格式 DateTimeFormatter formatter = DateTimeFormatter . ofPattern("yyyy-MM-dd");// 转换为 LocalDate LocalDate localDate = LocalDate . parse(dateStr , formatter);
2024-12-19 17:23:28
437

原创 IDEA中service启动类是灰色,而且启动类经常自动消失解决方法
原因:IDEA启动大于5个Services的时候就会让新启动的变成灰色,并且重启IDEA之后在Services里找不到相关启动类。通过调整设置增加保留的启动服务数量,解决自动消失的问题。此方法适用于 IDEA 2023.2.1+ 版本。
2024-11-14 10:39:06
1183
1
原创 Java通用实体验证框架:从业务需求到可复用代码的完整实现
目标:除字段一致性外,支持任意业务规则(如金额限制)/*** 通用实体验证框架* @param <T> 待验证的实体类型// -------------------- 字段一致性验证 -------------------- /*** 添加字段一致性验证规则* @param fieldExtractor 字段提取函数(如T::getField)* @param fieldName 字段名称(用于错误信息)* @param <V> 字段类型。
2025-06-10 16:39:46
449
原创 Java 通用实体验证框架:从业务需求到工程化实践【生产级 - 适用于订单合并前置校验】
本文介绍了Java通用实体验证框架的设计演进过程。针对传统验证方式存在的代码冗余、维护困难等问题,提出了分阶段改进方案:首先封装基础字段验证逻辑,然后通过泛型化改造支持任意实体类型,最终构建完整框架支持自定义规则。框架核心包括字段一致性验证(通过函数式接口提取字段)和自定义规则验证(支持Lambda表达式),实现了验证逻辑的可复用、易维护和强扩展性。该方案适用于订单合并等需要前置校验的业务场景,显著提升了代码质量和开发效率。
2025-06-10 16:38:17
934
原创 数据库字段唯一性修复指南:从设计缺陷到规范实现
通过添加唯一约束或数据迁移方案,可有效解决字段重复问题,保障数据一致性。实施前需根据数据量、业务影响范围选择合适方案,优先处理历史重复数据,并通过索引验证与持续监控确保约束生效。规范化表设计应在初期明确唯一性规则,减少后期维护成本。
2025-05-14 18:01:53
748
原创 在MyBatis Plus里处理LocalDateTime类型
类型时,你要确保数据库字段和Java实体类属性之间的类型映射是正确的。要是自动配置不满足需求,你可以自定义类型处理器。通过上述配置,MyBatis Plus就能顺利处理。类型了,包括数据的读写操作以及自动填充功能。在MyBatis Plus里处理。在实体类里直接把属性定义成。要保证数据库字段类型和。
2025-05-12 16:39:00
521
原创 在 Java 8 中 常用时间日期类
Java 8 的日期时间 API 设计更加合理,避免了旧 API 的线程安全问题和设计缺陷。日期:用LocalDate时间:用LocalTime日期+时间:用带时区的完整时间:用时间戳:用Instant计算间隔:用Duration(时间)或Period(日期)格式化/解析:用不可变性:所有类都是不可变的,线程安全。清晰的命名:类名直观(如LocalDate丰富的 API:内置大量工具方法,减少手动计算。时区支持:彻底解决旧 API 的时区问题。避免混用新旧 API,必要时通过Instant或。
2025-05-12 16:17:10
1040
原创 SQL分组统计与业务指标计算知识点笔记
分组统计是 SQL 数据分析的核心能力,通过合理组合 GROUP BY、聚合函数、条件判断,可高效实现多维度业务指标计算。关键在于:明确业务需求与指标定义严格处理 NULL 值和状态条件优化查询性能与命名规范数据脱敏保护业务隐私掌握这些要点,能有效提升数据统计的准确性和开发效率,适用于电商、物流、零售等多个领域的业务分析场景。
2025-05-12 14:40:45
708
原创 MyBatis 动态 SQL 详细指南【完整示例】
创建一个名为 的用户表,表结构如下:二、MyBatis 基础元素1. Java Bean 的 ORM 映射对象2. 标签 是 MyBatis 映射文件的根标签,通过 属性指定对应的 Mapper 接口全限定名,实现 XML 映射文件与 Java 接口的关联。示例如下:3. 标签用于定义数据库表字段和 Java 对象属性的映射关系,尤其在表字段名与对象属性名不一致时非常有用。对应的 配置如下:4. 标签用于定义可复用的 SQL 片段,提高代码的可维护性和复用性。通过 标签引用这
2025-05-08 15:23:43
763
原创 MyBatis 动态 SQL 完整笔记
if>:基础条件判断示例:根据name和age动态筛选用户</:多条件分支示例:类似 Java 的,优先匹配首个满足条件的<when></</</
2025-05-08 14:27:59
729
原创 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
553
原创 OkHttp3.X 工具类封装:链式调用,支持HTTPS、重试、文件上传【内含常用设计模式设计示例】
/ 创建自定义Client(添加拦截器+长超时)// 使用自定义Client发起请求开发效率提升:链式API简化网络请求编写可维护性强:统一配置入口,修改全局参数方便安全性增强:标准化HTTPS证书管理健壮性保障:内置重试机制和异常处理适合中大型项目作为基础网络组件使用,建议根据实际业务需求调整超时时间和重试策略。
2025-05-01 17:40:29
762
原创 Maven 手动添加 JAR 包到本地仓库笔记
命令将本地 JAR 文件安装到 Maven 本地仓库((优先推荐配置镜像仓库或 Nexus 私有库)。手动安装依赖是绕过自动下载的应急方案,但需注意。Maven 默认从中央仓库(),使其能被项目识别为依赖。
2025-04-23 16:30:08
826
原创 微服务无感发布实践:基于Nacos的客户端缓存与故障转移机制
客户端侧:缩短缓存刷新周期 + 启用故障转移机制;服务提供者侧:优雅停机流程 + 主动心跳同步;基础设施侧:Nacos集群高可用 + Kubernetes生命周期钩子;监控验证:通过Nacos控制台、Ribbon调试日志及链路追踪(如SkyWalking)实时监控实例状态。通过上述方案,即使服务实例A的两个节点同时下线,客户端仍能在5秒内完成服务列表更新,用户侧请求成功率可达99.99%。
2025-04-08 11:09:45
789
原创 在Spring框架中使用AspectJ实现AOP(面向切面编程)
封装横切关注点(如日志、事务)的模块,通过@Aspect注解标记类,包含和的定义。定义需要拦截的目标方法,使用表达式(如execution)描述匹配规则。指定切面逻辑在何时执行,分为五种类型:•:方法执行前•:方法执行后(无论是否异常)•:方法正常返回后•:方法抛出异常时•:包裹目标方法,可控制其执行流程。</</</</</</</在Spring Boot主类添加•Spring默认使用JDK动态代理(需接口),若目标类无接口则切换为CGLIB。
2025-04-01 11:11:41
969
原创 Centos7拉取编译运行SpringBoot【自动化部署脚本】
根据您的需求,这里是为脚本添加了自定义工具路径的改进版本,包含路径检查和环境变量设置:更新说明:路径配置灵活性:• 新增、、三个可配置路径• 用户可指定自定义安装路径,留空则自动检测系统路径• 路径检查包含有效性验证(存在性、可执行性)智能路径处理:增强环境验证:• 安装完成后显示各工具版本信息• 严格校验路径有效性,避免错误配置导致后续失败路径优先级规则:使用建议:自定义路径使用场景:生产环境推荐配置:• 建议显式指定路径以确保版本一致性• 关闭自动安装功能(
2025-03-24 15:26:41
778
原创 MySQL 中如何解决深度分页的问题?& MySQL中 join、inner join、left join、right join区别
方法优点缺点适用场景子查询 + 覆盖索引支持跳页,通用性强依赖联合索引设计需频繁分页且允许跳页记录最大 ID性能最优,复杂度低仅支持连续分页连续分页(如瀑布流)适合复杂搜索,分布式性能好维护成本高,ES 需额外学习高并发搜索+分页场景核心要点索引设计是优化基础,确保覆盖索引和排序字段匹配。权衡业务需求,优先选择游标分页(记录max_id)或延迟关联(子查询)。搜索引擎适用于复杂查询,但引入额外组件需评估成本。
2025-02-27 18:55:25
1088
原创 Spring Boot 自定义 Starter 完整实战手册
若需支持 Spring Boot 3.x,需 JDK 17+ 并检查依赖兼容性。:Spring Boot 2.7+ 已弃用。中的参数映射到 Java 对象。
2025-02-27 11:26:03
1141
原创 搭建 Hadoop 3.3.6 伪分布式
的路径,在集群格式化的时候,必须保证不存在!文件中的映射数据,复制到Windows下的。1.下载二进制Linux版的文件。Web UI 界面 9870。端口和 YARN Web。命令设置密码(请替换。
2025-02-20 21:17:29
880
原创 Java 设计模式实践:工厂模式、建造者模式、单例模式与事务回滚机制
设计模式作用代码实现工厂模式统一创建对象,解耦代码单例模式只创建一个工厂实例,节省内存建造者模式支持链式调用,提高可读性事务回滚机制操作失败时回滚,保证数据一致性。
2025-02-17 17:10:28
740
原创 使用 CMake 自动管理 C/C++ 项目
CMake 是一个强大的构建系统,可用于跨平台管理 C/C++ 项目的编译过程。本文件提供了一种自动化的方式来管理 C/C++ 项目,包括创建代码目录、自动编译所有源文件、管理输出文件等。
2025-02-05 17:03:05
1610
原创 生产环境中常用的设计模式
Spring 容器通过IoC和DI大幅简化了应用程序中对象的管理和依赖的配置,极大提高了开发效率和代码质量。动态获取 Bean、注解配置等功能为复杂业务场景(如策略模式)提供了便捷的实现方式。策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的的客户。这个策略模式的定义是不是有点抽象呢?那我们来看点通俗易懂的比喻:假设你跟不同性格类型的小姐姐约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去逛街买买买最合适。
2025-01-16 18:13:29
1303
原创 深入浅出 Javax.Validation:校验注解全解析与实战指南
NotNull(message = "用户名不能为空") private String username;@NotBlank(message = "密码不能为空") @Size(min = 6 , max = 20 , message = "密码长度必须在 6 到 20 个字符之间") private String password;@Email(message = "邮箱格式不正确") private String email;
2025-01-15 16:19:55
984
原创 RuoYi Cloud项目解读【四、项目配置与启动】
* 中,项目启动需要将这些配置文件加载到配置中心,所以需要额外配置一下Nacos,以增加对mysql数据源的支持。Nacos配置好之后,启动成功后访问:http://localhost:8848/nacos 账号/密码。当上面环境全部准备好之后,接下来就是项目配置。当后端,前端都启动成功之后,若依(RuoYi-Cloud) 项目就算运行成功啦。若依(RuoYi-Cloud) 配置中心的项目配置文件,持久化在**MySQL IP、端口、账号、密码、数据库等。Minio IP、端口、账号、密码、桶。
2025-01-08 15:56:51
1347
原创 RuoYi Cloud项目解读【三、环境准备】
项目运行离不开语言支持,若依(RuoYi-Cloud)后端为Java项目,需要java环境,前端为Vue项目,需要Node.js环境,运行若依前需要将这些环境安装成功。若依(RuoYi-Cloud)目前使用的数据库暂时只有MySQL跟Redis,后续可以根据项目需要添加其他数据库,比如MongoDB,Elasticsearch等。项目运行前提需要准备环境,如果项目提供文档,直接看文档操作即可,如果没有文档,就结合开发经验/项目经验来配置。进入bin目录启动,执行seata-server.bat命令。
2025-01-08 15:55:40
858
原创 RuoYi Cloud项目解读【二、项目上手技巧】
这些项目可能是由个人、小团队或组织开发,其开发方式和治理模式可能与传统的标准开源项目有所不同。标准开源项目,都是有一个README.md这种文档,这个文档是项目的简介,一般会用大白话方式讲清楚项目背景,项目技术点,项目具体使用等。没有使用Maven/Gradle传统项目,比如Java SE/JavaWeb项目,Jar依赖一般放置在lib文件夹,优先找它。没有文档的帮助,只能借助代码结构名称大体推测项目可能具有模块,拥有的功能。要求:结合技术栈,想象一下代码可能的结构,后续项目解读时有参照蓝本。
2025-01-08 15:53:38
998
基于官网最新稳定版 redis 6.2.6 版, Windows x64 平台源码编译
2022-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人