
Java功能开发实战
文章平均质量分 95
手把手教学 Java 常用功能实现
HelloDam
CSDN“博客专家”、阿里云“专家博主”、支付宝“社区优秀博主”。机械工程在读研究生,研究方向为工业智能优化算法和智能制造系统设计与开发。有丰富的项目开发经验,有一定创新能力,求学期间授权发明专利10件、软著5件、获得多个国家级、省级竞赛奖项,获研究生国家奖学金。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一文带你入门位运算
本文介绍了位运算的基础概念及其应用。位运算是直接对二进制位进行操作的高效运算方式,包括按位与(&)、或(|)、异或(^)、取反(~)、左移(<<)和右移(>>)。文章通过具体例子说明了位运算在判断奇偶、状态标记、数据压缩、快速计算以及找唯一数等场景中的实际用途。例如,利用位运算可以实现无需临时变量的数值交换,或者将多个小数字打包存储以节省空间。这些技巧不仅提升了程序性能,还在低级操作中发挥了重要作用。原创 2025-02-12 15:04:04 · 1226 阅读 · 0 评论 -
基于 Redis GEO 实现条件分页查询用户附近的场馆列表
本文档详细介绍了如何使用Redis GEO模块实现场馆位置的存储与查询,以支持“附近场馆”搜索功能。首先,通过微信小程序获取用户当前位置,并将该位置信息与场馆的经纬度数据一同存储至Redis中。利用Redis GEO高效的地理空间索引能力,文档展示了如何初始化缓存、批量处理和存储场馆位置信息,以及执行基于距离和多种条件的分页查询。此外,还提供了计算两个地理位置间距离的工具类。此方案适用于开发具备地理定位功能的应用程序,如体育场馆预订系统。原创 2025-01-30 16:44:23 · 1329 阅读 · 0 评论 -
接口 V2 完善:分布式环境下的 WebSocket 实现与 Token 校验
本文介绍了如何使用WebSocket优化客户端与服务端之间的通信,特别是在处理异步订单创建通知的场景中。通过引入WebSocket代替传统的HTTP请求-响应模式,实现了服务器主动向客户端推送数据的功能。文中首先概述了WebSocket的优势,随后深入探讨了其在分布式系统中的具体实现。特别地,针对分布式架构下WebSocket连接状态同步问题,提出了一种基于消息队列广播机制的解决方案。同时,还强调了心跳检测机制的重要性,以维护连接的有效性。原创 2025-01-24 19:51:27 · 1899 阅读 · 0 评论 -
接口 V2 完善:基于责任链模式、Canal 监听 Binlog 实现数据库、缓存的库存最终一致性
本文介绍了一种使用Canal监听MySQL Binlog实现数据库与缓存最终一致性的方案。文章首先讲解了如何修改Canal配置以适应订单表和时间段表的变化,然后详细描述了通过责任链模式优化消息处理逻辑的方法,确保能够灵活应对不同数据表的更新需求。最后,展示了如何利用RocketMQ消费Canal消息并通过责任链处理器同步更新缓存,从而保证数据的一致性。此方法有效提升了系统的可扩展性和维护效率。原创 2025-01-22 18:11:30 · 1523 阅读 · 0 评论 -
场馆预定平台高并发时间段预定实现V2
本文档介绍了场馆预订系统接口V2的设计与实现,旨在解决V1版本中库存数据不一致及性能瓶颈的问题。通过引入令牌机制确保缓存和数据库库存的最终一致性,避免因服务器故障导致的库存错误占用问题。同时,采用消息队列异步处理库存扣减和订单创建,显著提升了接口的吞吐量和响应速度。测试结果显示,新版接口在高并发场景下表现优异,平均响应时间为1801毫秒,吞吐量达到了每秒1045.8次请求,异常率仅为0.22%,极大改善了用户体验。原创 2025-01-21 12:03:43 · 1149 阅读 · 1 评论 -
Jmeter 动态参数压力测试时间段预定接口
本文档详细介绍了如何使用ApacheJMeter进行压力测试,以评估预定接口在高并发场景下的性能表现。通过创建线程组模拟不同数量的用户并发请求,利用CSV文件动态配置时间段ID和用户token,确保了测试数据的真实性和有效性。文档中还展示了如何设置JMeter的各项参数、添加HTTP请求头、查看结果树和聚合报告等操作步骤。最终,通过一次针对4000用户并发的压测实例,分析了样本数、响应时间、异常率及吞吐量等关键指标,验证了系统的稳定性和可靠性。原创 2025-01-19 21:07:27 · 1499 阅读 · 0 评论 -
基于 FastExcel 与消息队列高效生成及导入机构用户数据
本文档详细介绍了开发机构用户数据导入功能的必要性及实现方法,如针对教育机构如学校场景下提高用户体验和管理效率的需求。文中首先分析了直接对接学生管理系统与平台对接的优势,包括减少人工审核成本、提高身份验证准确性等。接着介绍了FastExcel作为处理Excel文件的高效工具及其在用户数据导入导出中的应用,并展示了如何利用JavaFaker生成测试数据,以及通过消息队列异步处理Excel数据导入以保证效率和稳定性。最后,提供了SQL批量插入语句示例,用于处理用户数据的高效入库。原创 2025-01-13 22:09:02 · 1677 阅读 · 0 评论 -
腾讯云域名购买、备案、解析:一步到位的实操手册
本文档简要介绍了在腾讯云平台购买域名、完成网站备案及配置域名解析的流程。首先,用户需搜索并注册心仪的域名,创建并通过审核信息模板后完成购买。接着,针对个人用户,文档指导如何启动和完成工信部要求的网站备案程序,包括填写网站信息、签署文件以及通过电话和短信验证。最后,文章讲解了如何设置域名解析,使域名能够指向正确的服务器IP地址,并提及子域名的添加方法,确保网站可以通过易记的域名访问,同时满足中国大陆法律对网站悬挂备案号的要求。原创 2025-01-03 20:42:49 · 3029 阅读 · 0 评论 -
场馆预定平台高并发时间段预定实现V1
本文介绍了一个高效处理高并发场馆预订请求的系统设计方案。通过使用Redis缓存和位图技术,系统能够快速管理场地的可用性和预订状态。采用Lua脚本确保操作的原子性,结合责任链模式进行参数校验,并通过事务保证数据一致性。系统还实现了订单生成、延时关闭订单等功能,确保资源的公平分配和高效利用。整体设计旨在提供稳定、高性能的预订接口,满足高并发场景下的用户需求。原创 2025-01-05 20:19:01 · 2110 阅读 · 4 评论 -
整合 Knife4j 于 Spring Cloud 网关:实现跨服务的 API 文档统一展示
本文档概述了构建和配置基于JDK 17、Spring Boot 3.0.7及Spring Cloud 2022.0.3的微服务系统,特别聚焦于集成Knife4j以增强API文档管理和接口测试功能。文中详细介绍了如何在Spring Boot应用中添加Knife4j依赖、配置Swagger UI路径和API分组,以及使用注解为接口添加描述信息。此外,文档还讲解了通过Spring Cloud Gateway聚合多个微服务的API文档的方法,并说明了如何设置白名单和基本认证来保护API文档访问。原创 2024-12-20 22:52:31 · 2067 阅读 · 0 评论 -
基于 mzt-biz-log 实现接口调用日志记录
`mzt-biz-log` 是一个用于记录操作日志的通用组件,旨在追踪系统中“谁”在“何时”对“何事”执行了“何种操作”。该组件通过简单的注解配置,如 `@LogRecord`,即可实现接口调用的日志记录,支持成功与失败场景下的差异化日志描述。它还提供了丰富的功能,包括但不限于租户隔离、日志子类型划分、条件性日志记录以及枚举值解析等。此外,`mzt-biz-log` 支持自定义日志存储逻辑,允许开发者根据业务需求将日志持久化到数据库或其他存储媒介。整体设计简洁高效,适用于微服务架构中的日志管理需求。原创 2024-12-16 11:10:14 · 1885 阅读 · 1 评论 -
基于 Spring Boot 实现图片的服务器本地存储及前端回显
本文探讨了在网站开发中图片存储的各种方法,包括本地文件系统存储、对象存储服务(如阿里云OSS)、数据库存储、分布式文件系统及内容分发网络(CDN)。文中详细对比了这些方法的优缺点,并针对不同规模的应用推荐了相应的存储策略。此外,还提供了一个基于SpringBoot框架实现服务器本地图片存储与回显的具体示例,涵盖了从图片上传到通过网关服务安全访问图片的全过程。原创 2024-11-26 14:17:58 · 3327 阅读 · 0 评论 -
面向微服务的 Spring Cloud Gateway 的集成解决方案:用户登录认证与访问控制
描述了基于Spring Cloud Gateway的微服务网关及Admin服务的实现。网关通过定义路由规则,利用负载均衡将请求转发至不同的后端服务,并集成了Token验证过滤器以确保API的安全访问,同时支持白名单路径免验证。Admin服务负责用户管理,包括注册、登录、登出等功能,采用布隆过滤器优化用户名存在性检查,使用Redis存储会话信息并结合JWT进行身份验证。此外,文档还介绍了ShardingSphere的数据分片与加密配置,以及用户上下文在请求链路中的传递机制,确保了跨服务调用时用户信息的一致性原创 2024-12-22 14:58:27 · 1544 阅读 · 0 评论 -
使用 Canal 监听 MySQL Binlog 日志实现最终一致性
本文档探讨了在分布式系统中处理超时未支付订单的挑战与解决方案。首先,分析了原始实现中使用`@Transactional`注解确保本地事务一致性的问题,在跨服务调用时可能导致的数据不一致。接着,提出了一种替代方案:通过开启MySQL的Binlog日志,利用Canal监听数据库变更,并异步发送消息至RocketMQ,实现了订单状态变更与库存恢复的最终一致性。该方案提高了系统的容错性、处理效率和稳定性,同时支持流量削峰和幂等性设计。文档还详细介绍了MySQL Binlog的配置、Canal中间件的部署与配置,以及原创 2024-12-15 10:56:26 · 1834 阅读 · 0 评论 -
支付宝沙箱指南:如何实现手机网站支付
本文详细介绍了支付宝沙箱支付的使用方法,包括支付、退款和交易查询的完整流程。通过沙箱环境,开发者可以模拟真实支付场景,无需使用真实资金。文章提供了Java代码示例,展示了如何发起支付、处理回调、进行退款以及查询交易状态。此外,还探讨了支付过程中可能遇到的问题及解决方案,如订单超时处理和内网穿透技术的应用,帮助开发者更好地理解和集成支付宝支付功能。原创 2025-01-05 17:08:33 · 1149 阅读 · 3 评论 -
分布式环境下定时任务扫描时间段模板创建可预订时间段
本文详细介绍了场馆预定系统中时间段生成的实现方案。通过设计场馆表、时间段模板表和时间段表,系统能够根据场馆的提前预定天数生成未来可预定的时间段。为了确保任务执行的唯一性和高效性,系统采用分布式锁机制和定时任务,避免重复生成时间段。通过流式查询优化大数据处理,减少内存占用和网络延迟。同时,使用唯一复合索引保证时间段生成的幂等性,避免重复插入。为提高系统性能,引入二级缓存和Redis管道技术,加速数据查询和缓存预热,确保用户在预定时间段时获得快速响应。整体方案兼顾了系统的稳定性、高效性和可扩展性。原创 2025-01-06 16:19:12 · 1495 阅读 · 0 评论 -
【若依管理系统】前后端分离单机版开发必备小技巧
该文主要总结本人在使用若依管理系统时的开发小技巧,涵盖前后端。例如如何写单元测试,如何使用分页查询,如何设置日志等级,如何替换系统图标……原创 2024-11-01 20:56:16 · 1271 阅读 · 0 评论 -
【Linux服务器】SpringBoot+Vue 前后端分离 微服务项目 打包部署上线全流程(原始部署/宝塔部署)
该文档提供了Vue.js前端项目与Java后端项目的打包和部署指南。前端部分介绍了如何通过修改配置文件来进行生产环境构建,并使用Nginx或宝塔面板进行部署。后端部分详细说明了如何调整Maven配置以优化打包过程,以及如何通过命令行或宝塔面板部署Spring Boot应用。文档还包含了示例代码和步骤截图,便于开发者理解和操作。原创 2023-04-25 10:37:30 · 12513 阅读 · 8 评论 -
【文件增量备份系统】MySQL流式查询优化百万量级数据清理性能
本文介绍了备份系统中一种用于清理无效备份记录的功能优化方案。原始方案采用分页查询的方式处理备份文件,但在面对数百万条记录时效率低下。为此,提出了流式处理方法,通过数据库的流式查询功能逐行处理备份记录,有效减少了内存占用并提高了查询效率。测试表明,新方案将清理时间从原来的3分钟缩短至70秒,性能提升了25倍。此外,通过添加和删除文件的测试验证了清理功能的有效性和可靠性。原创 2024-03-07 20:34:43 · 892 阅读 · 0 评论 -
Linux 服务器部署上线带 Cplex 的 Java 项目
本文档详细介绍了在Linux环境下安装IBM CPLEX Optimization Studio 22.1.0的步骤,包括如何通过赋予执行权限来运行安装文件,以及如何获取关键的`cplex.jar`文件。此外,还阐述了如何利用Maven管理CPLEX的不同版本,在开发与部署Java项目时切换使用不同版本的CPLEX,并讲解了将本地Cplex jar包安装到Maven仓库的方法及Maven项目的依赖配置。最后介绍了如何打包Java项目并部署到服务器上,包含了一个启动脚本示例用于简化jar包的执行流程。原创 2023-10-31 22:54:26 · 860 阅读 · 0 评论 -
【智能排班系统】聚合服务开发
本文介绍了如何将一个微服务项目的多个服务聚合到一个服务中,通过聚合服务启动项目可以节省计算机内存,给服务器内存较少的用户添加一个部署方案原创 2024-03-05 11:15:36 · 1641 阅读 · 0 评论 -
【智能排班系统】排班任务异步计算,WebSocket实时通知任务的计算状态
本文介绍了一种利用WebSocket技术优化排班系统用户体验的方法。通过异步计算和实时通信,系统能在不等待计算完成的情况下快速响应用户请求,并通过WebSocket在计算完成后通知用户。文中详细描述了WebSocket的工作原理、应用场景及其实现方式,包括后端配置、依赖引入、WebSocket端点定义以及客户端连接初始化逻辑。这一方案有效提升了系统的交互性和效率。原创 2023-03-08 19:05:26 · 588 阅读 · 0 评论 -
【文件增量备份系统】MySQL百万量级数据量分页查询性能优化
本文针对大数据量下的分页查询性能问题进行了深入探讨与优化,最初查询耗时长达12秒,通过避免全表计数及利用缓存保存总数的方式显著提升了浅分页查询速度。面对深分页时依然存在的延迟,采用先查询倒数第N条记录ID,再依据此ID获取后继记录的策略,进一步降低了查询时间。此方案适用于优化大量数据背景下的分页展示性能问题。原创 2024-09-28 12:32:57 · 1690 阅读 · 0 评论 -
SpringBoot实现文件上传与下载【提供基于Element封装的UI组件+Java后台读取文件逻辑】
快速了解基于SpringBoot和Vue前后端分离项目的文件上传、下载的方式原创 2023-03-02 11:10:59 · 432 阅读 · 0 评论 -
【智能排班系统】SpringBoot整合邮件发送服务
本文档指导如何配置Spring Boot应用以通过QQ邮箱发送邮件。首先,用户需登录QQ邮箱并开启SMTP服务以获取授权码。随后,在Spring Boot项目中,通过`application.yml`配置文件指定SMTP服务器的地址、端口及认证信息等参数。此外,还介绍了如何创建一个配置类`MailConfig`来读取这些配置,并使用Lombok简化getter和setter方法。为了封装邮件发送所需的属性,文档还提供了`EmailDto`类。原创 2024-08-12 08:55:41 · 636 阅读 · 0 评论 -
Mac系统安装Tomcat、创建Java Web项目并配置Tomcat作为服务器
本文档提供了Apache Tomcat的简介及在Mac上安装配置的指南。Tomcat是一个开源Servlet容器,用于部署Java Web应用。文档详细介绍了从官方网站下载Tomcat、解压缩安装包到最终验证安装成功的全过程。此外,还指导读者如何通过Maven创建Java Web项目,并在IntelliJ IDEA中配置Tomcat作为本地服务器,完成项目的部署和启动,确保可以通过浏览器访问。原创 2024-01-08 17:26:06 · 6929 阅读 · 0 评论 -
【智能排班系统】Quartz结合Cron-Utils自定义时间发送上班、休息提醒
使用Quartz结合Cron-Utils实现让门店管理员自定义时间给相应员工发送上班、休息通知原创 2024-04-16 15:38:39 · 1351 阅读 · 0 评论 -
【智能排班系统】基于SpringSecurity实现登录验证、权限验证
本文介绍了Spring Security在Java应用中的使用,特别是其在身份验证和授权方面的强大功能。通过整合Spring Security,开发者能简便地实施细粒度的权限控制,适合拥有多种用户角色(如系统管理员、门店管理员、普通员工)的应用场景。文章还探讨了如何利用JWT进行用户认证管理,展示了关键的工具类实现,包括JWT生成与解析、密码加密及用户上下文管理等技术细节。此外,还提到了基于Redis的会话管理和IP流量控制的配置示例。原创 2024-04-06 11:53:37 · 1600 阅读 · 0 评论 -
【智能排班系统】AOP + 自定义注解 实现操作日志自动记录
定义注解,将注解添加到需要记录日志的方法上,当方法执行完成或者抛异常后,通过AOP获取方法的参数、响应等信息记录到数据库中。原创 2024-04-06 16:37:06 · 1389 阅读 · 0 评论 -
如何给GitHub的开源项目贡献PR
本文详细介绍了如何向开源项目“代码随想录”贡献自己的题解。首先,需要Fork原项目的仓库至个人GitHub账户,然后解决克隆仓库时可能遇到的SSH密钥问题。接着,按照标准流程对本地仓库进行代码或文档的修改,并提交至个人仓库。最后,通过创建Pull Request的方式向原项目发起合并请求,完成对开源项目的贡献。文中还提供了详细的命令示例和截图指导,帮助读者轻松上手。原创 2024-11-29 21:34:14 · 945 阅读 · 0 评论 -
【JUC】使用CompletableFuture执行异步任务
Java中的Future接口及其核心实现FutureTask,用于异步任务执行与结果获取。通过示例展示了如何使用FutureTask与线程结合,执行耗时操作而不阻塞主线程。进一步介绍了CompletableFuture,一种更高级的异步编程模型,它克服了Future的局限性,提供了更优雅的回调机制和丰富的组合操作,如thenApply、thenAccept、thenRun等,支持链式调用和错误处理。文章还比较了同步与异步获取结果的不同方式,强调了CompletableFuture在现代高并发场景下的优势。原创 2024-07-14 22:07:00 · 1530 阅读 · 0 评论 -
Java多进程调用 C++ 实现的 dll 程序和 exe 程序
本文介绍了使用Java调用本地DLL及EXE程序的方法。针对DLL调用,文章提供了基于JNA库的具体实现方案,包括定义Java接口以映射DLL中的函数,并展示了如何加载DLL及调用其中的方法。对于EXE程序的调用,则提出了一种通过批处理文件(BAT)启动外部可执行文件的方式,并通过轮询检查结果文件的存在来判断计算是否完成。此外,还探讨了使用ProcessBuilder启动独立进程来运行DLL调用程序DllRunner.jar,以及如何处理子进程的输入输出流以避免阻塞。原创 2024-08-31 22:53:04 · 1508 阅读 · 0 评论 -
【智能排班系统】Hibernate Validator 参数校验
本文档介绍了参数校验的重要性及其在软件开发中的作用,强调了数据完整性、安全性、用户体验、系统稳定性及开发效率等方面的关键价值。文档详细阐述了Hibernate Validator这一流行的Java验证框架的使用方法,展示了如何利用其内置注解(如@NotNull、@Size、@Email等)来对输入数据进行有效性检查。此外,还探讨了自定义校验规则的开发方式,以及如何通过分组校验来适应不同的业务场景需求。通过集成Hibernate Validator,开发者可以显著提升应用程序的质量与用户体验。原创 2024-08-31 23:07:52 · 1550 阅读 · 0 评论 -
【若依管理系统】Windows服务器部署方式
本文档详述了基于前后端分离的若依系统(版本3.8.8)在Windows环境下从零开始的部署流程,包括JDK、Redis、MySQL等环境的搭建与配置。前端部署涉及Vue项目构建、图片优化及利用Nginx托管;而后端则涵盖Spring Boot应用的日志路径调整、配置文件修改与最终的jar包构建及运行。此外,文档还提供了服务器端口开放及防火墙设置的方法,确保部署的服务可被外部访问。本文旨在帮助开发者顺利完成项目的本地部署与测试。原创 2024-08-21 19:40:47 · 4243 阅读 · 0 评论 -
【易售校园二手平台】”我的“界面实现+“信息修改“界面实现+登出账号实现+图片上传组件【基于若依管理系统开发】
本文详细介绍了“易售校园二手平台”的功能实现与界面设计,涵盖用户个人信息管理、头像上传、学校及校区选择、性别设置、密码修改等功能模块。通过Uni-app与后端若依管理系统的结合,实现了用户信息的动态更新与交互。文章重点解析了退出账号逻辑、自我介绍文本溢出处理、信息修改页面的设计以及图片上传组件的实现,并提供了部分关键代码示例,为开发者提供了一套完整的参考方案。原创 2023-07-20 10:57:45 · 2469 阅读 · 0 评论 -
Vue + SpringBoot:el-upload组件单文件、多文件上传实战解析
本文档详述了DXF文件的单文件与多文件上传机制,涵盖前后端交互流程。后端使用Spring框架处理上传请求,前端借助Element UI组件库实现用户界面。单文件上传限制文件类型为DXF且大小不超过50MB,多文件上传则需用户手动触发上传,通过自定义Axios请求批量提交选定文件,确保了上传操作的可控性和效率。原创 2024-07-05 11:44:35 · 1877 阅读 · 4 评论 -
遇见狂神说 SSM整合 学习笔记(完整笔记+代码)
狂神课程 SSM 完整学习笔记(附详细代码和操作)原创 2024-01-20 14:13:27 · 1255 阅读 · 0 评论 -
【智能排班系统】基于AOP和自定义注解实现接口幂等性、消息队列消费幂等性
本文探讨了接口幂等性的重要性及其在容错机制、系统一致性和安全性提升方面的价值。文章深入分析了多种幂等性实现策略,包括token机制、乐观锁与版本号、分布式锁、唯一约束及防重表等方法,并讨论了各自的优缺点。此外,提供了基于Java的实现示例,涵盖了枚举定义、SpEL表达式解析、AOP切面处理、以及利用Redis进行幂等性校验的具体代码片段。这些技术手段有助于开发者在实际项目中有效实施幂等性设计,以增强系统的稳定性和安全性。原创 2024-04-06 22:49:06 · 1236 阅读 · 0 评论 -
Java开启线程执行异步任务的四种方式
本文探讨了Java中初始化线程的四种常见方法:通过继承`Thread`类,实现`Runnable`接口,利用`Callable`与`FutureTask`组合以获取返回值,以及使用线程池高效管理线程。线程池能显著降低资源消耗、提升响应速度,并优化线程管理,避免因频繁创建和销毁线程导致的系统不稳定。文章还介绍了不同类型的线程池,如固定大小、缓存和单线程池,以及它们的内部机制和参数设定,帮助开发者更好地理解和应用多线程编程。原创 2024-07-14 21:35:28 · 4194 阅读 · 0 评论 -
【智能排班系统】雪花算法生成分布式ID
雪花算法是由Twitter公司设计的一种生成全局唯一ID的方法,适用于分布式系统环境。该算法通过组合时间戳、数据中心标识、机器标识以及序列号来生成64位的长整型ID,确保了ID的全局唯一性和趋势有序性。算法简单高效,具有高可用性和易于解析的特点,适用于数据库主键、消息队列、分布式事务等多种场景。通过使用如RandomWorkIdChoose或LocalRedisWorkIdChoose等策略,可以在有无Redis环境下生成非冲突的ID。原创 2024-04-06 11:47:32 · 1709 阅读 · 0 评论