- 博客(2512)
- 资源 (32)
- 收藏
- 关注
转载 IDEA Debug 高阶技巧,老手都是这么玩的~~
IntelliJ IDEA,由JetBrains(捷克共和国)开发的一款强大的Java集成开发环境(IDE),因其丰富的功能、智能的代码辅助以及用户友好的界面设计,在全球范围内广受Java开发者的喜爱,在国内,笔者遇到过不使用IDEA的Java程序员不超过三个。它使开发者能够逐行执行代码,检查运行时的状态,包括变量值、内存占用、线程状态等,从而帮助开发者理解代码的实际行为,定位并修复错误。这个功能允许开发者在调试会话中计算表达式的值,不仅可以查看变量的当前值,还可以执行表达式,甚至调用方法。
2025-09-12 09:06:43
39
转载 性能瓶颈?Dify 应用高可用性治理的实践
Higress AI 网关是外界与企业 AI 应用、企业 AI 应用与大语言模型服务和 MCP 服务的桥梁,旨在解决模型集成复杂、安全合规难、管理效率低等挑战,提供统一治理入口。
2025-09-12 09:04:36
25
转载 支付成功后前端强制刷新的协同机制:解决主从延迟导致的余额不一致问题
主从延迟导致的数据不一致问题是分布式系统常见的挑战之一。通过实现"支付成功后前端强制刷新"的协同机制,我们可以有效解决这个问题,提升用户体验。这一机制的核心在于前后端的协同工作:1. 后端需要识别支付成功场景并标识需要刷新2. 前端需要根据后端指示执行强制刷新3. 后端需要支持根据特定条件将读请求路由到主库4. 需要完善的降级和容错机制保障系统稳定性5. 需要优化用户体验,使刷新过程尽可能自然流畅实现这一机制需要仔细权衡一致性和性能的关系,设置合理的超时和降级策略,避免给主库造成过大压力。
2025-09-10 18:08:55
30
转载 Spring Boot 集成第三方 API:超时与重试机制设计与实践
在分布式系统架构中,集成第三方API已成为业务开发的常态,例如支付接口、地图服务、短信网关等。然而,第三方API的稳定性受网络波动、服务负载、维护升级等多种因素影响,极易出现请求超时、响应失败等问题。若缺乏有效的容错机制,这些问题可能导致业务中断、数据不一致甚至系统雪崩。Feign默认会将超时异常封装为// 1. 定义Feign客户端// name:Feign客户端名称(需与配置文件中局部配置的key一致)// 2. 全局异常处理器(统一捕获Feign超时异常)
2025-09-10 18:07:58
23
转载 Spring Boot升级打怪记:从2.3到2.7,SpringDoc与Swagger的奇妙冒险
Swagger 诞生于 2011 年,由 Wordnik 的联合创始人 Tony Tam 创建 ,最初是为了解决 API 开发中文档与代码不一致的问题,通过简洁的 JSON 或 YAML 格式描述 API 结构,使 API 的设计、实现和测试更高效直观。它的出现,让开发人员从繁琐的手动文档编写中解脱出来,能根据代码自动生成可视化 API 文档,支持在线测试,极大提高开发效率与协作便利性。
2025-09-05 11:42:12
73
转载 高并发处理:请求合并
两者的实现队列添加或移除的锁不一样,ArrayBlockingQueue实现的队列中的锁是没有分离的,即添加操作和移除操作采用的同一个ReenterLock锁,而LinkedBlockingQueue实现的队列中的锁是分离的,其添加采用的是putLock,移除采用的则是takeLock,这样能大大提高队列的吞吐量,也意味着在高并发的情况下生产者和消费者可以并行地操作队列中的数据,以此来提高整个队列的并发性能。//定时任务线程池,创建一个支持定时、周期性或延时任务的限定线程数目(这里传入的是1)的线程池。
2025-09-01 15:20:03
30
转载 Java 泛型 T、E、K、V、?、S、U、V等 ,还傻傻分不清?
泛型的核心思想是 “参数化类型”,即把类型作为参数传递给类或方法。这里的 String 就是类型参数,表示这个列表只能存放字符串类型的元素。Java 泛型通过 “参数化类型” 实现了类型安全与代码复用,T、E、K、V 等符号是约定俗成的类型参数命名,而?通配符则灵活处理了未知类型的场景。
2025-09-01 09:54:21
39
转载 震惊!50% 的 Java 程序员都不知道的 Jackson 高阶用法(含工具类封装)
Jackson 的功能远不止于此,建议在实践中结合官方文档深入探索,例如多态序列化、自定义模块、性能调优等,能让你的 JSON 处理能力更上一层楼。无论是 Web API、微服务通信,还是前后端交互,JSON 都是事实上的通用标准。掌握 Jackson 不仅仅是学会“对象和 JSON 的互转”,而是要善用其丰富的生态与扩展能力。本文将基于实际开发场景,逐步解析 Jackson 的高阶用法,并给出一个经过封装的。:将 Java 对象转为 JSON 字符串,或从 JSON 恢复成 Java 对象。
2025-08-29 17:49:31
32
转载 希音面试:SSE 底层原理是什么?快20年了, 为何 突然 爆火?
你有没有想过,为什么 ChatGPT 的回答能逐字逐句地“流”出来?这一切的背后,都离不开一项关键技术——!SSE(Server-Sent Events)是一种基于 HTTP 协议的服务器推送技术,允许服务端主动向客户端发送数据流。SSE 可以被理解为 HTTP 的一个扩展或一种特定用法。它不是一个全新的、独立的协议,而是构建在标准 HTTP/1.1 协议之上的技术。SSE 就像是服务器打开了一个“单向数据管道”,服务器通过HTTP 扩展 可以持续不断地流向浏览器,无需客户端反复发起请求。
2025-08-29 17:46:50
76
转载 Spring Boot 集成第三方 API 时,常见的超时与重试机制设计
在 Spring Boot 项目中,集成第三方 API 时,超时与重试机制WebClientFeign都支持超时设置;可以方便地实现重试逻辑;可以实现更全面的容错能力(重试、熔断、限流、降级);在关键业务场景下,要始终考虑超时 + 重试 + 熔断 + 降级的组合方案。这样才能构建一个健壮、可用、容错性强的系统。✍️ 你在 Spring Boot 项目中是否踩过第三方 API 调用超时的坑?欢迎在评论区分享你的实践经验!
2025-08-25 09:27:37
65
转载 看了 ResponseEntity 这个类,决定再也不重复发明 “构造HTTP响应体” 这类轮子了!
body("{\"message\":\"包含自定义头部的响应\"}");演示结果:1、类型安全// 编译器会检查类型!2、链式调用3、HTTP语义精确// 正确的状态码传达正确的语义4、与Spring生态完美集成自动内容协商(JSON/XML)异常处理统一响应与Spring HATEOAS无缝协作在Spring Boot3 中,ResponseEntity是一个极其强大的工具。它就像一把精心设计的瑞士军刀,包含了处理HTTP响应所需的所有工具。
2025-08-13 08:37:35
64
转载 Spring Gateway、Sa-Token、Nacos 认证/鉴权方案,yyds!
大家好,我是不才陈某~之前进行鉴权、授权都要写一大堆代码。如果使用像Spring Security这样的框架,又要花好多时间学习,拿过来一用,好多配置项也不知道是干嘛用的,又不想了解。要是不用Spring Security,token的生成、校验、刷新,权限的验证分配,又全要自己写,想想都头大。Spring Security太重而且配置繁琐。自己实现所有的点必须又要顾及到,更是麻烦。最近看到一个权限认证框架,真是够简单高效。这里分享一个使用Sa-Token的gateway鉴权demo。
2025-08-13 08:36:57
65
转载 告别SwaggerUI!一款更适合SpringBoot的API文档新选择
以上就是今天要讲的内容,本文简单介绍了SpringDoc整合在SpringBoot项目中的步骤,如果有遗漏,请大家留言,看到后会进行补充来源:https://blog.csdn.net/2503_92695612。
2025-08-11 09:00:57
89
转载 java 固定时段倒计时实现
来源:https://blog.csdn.net/qq_16127313/article/details/149386976。
2025-08-11 08:59:41
25
转载 终结 Swagger!SpringDoc OpenAPI 3 接管 API 文档王座全攻略
立即访问网站,选择您心仪的模板,开启建站新体验吧!今天就讲到这里,如果有问题需要咨询,大家可以直接留言或扫下方二维码来知识星球找我,我们会尽力为你解答。快速搭建属于您的专属官网,就上 TechWisdom(www.techwisdom.cn)!这次事故的根源并不是业务逻辑,而是文档工具 Swagger2 强行扫描了。SpringDoc 会自动生成对应的 OpenAPI 文档结构,真正实现。尾声:SpringDoc 带来的不只是文档,更是效率革命。它不再是一个文档工具,而是你后端系统工程化的重要基石。
2025-08-11 08:59:06
68
转载 一个Demo搞定前后端大文件分片上传、断点续传、秒传
文件上传在项目开发中再常见不过了,大多项目都会涉及到图片、音频、视频、文件的上传,通常简单的一个Form表单就可以上传小文件了,但是遇到大文件时比如1GB以上,或者用户网络比较慢时,简单的文件上传就不能适用了,用户辛苦传了好几十分钟,到最后发现上传失败,这样的系统用户体验是非常差的。或者用户上传到一半时,把应用退出了,下次进来再次上传,如果让他从头开始传也是不合理的。本文主要通过一个Demo从前端、后端用实战代码演示小文件上传、大文件分片上传、断点续传、秒传的开发原理。
2025-08-11 08:58:24
59
转载 IDEA提示GIT失效,一阵一阵的
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。搞了一下午,发现是git启动慢的原因,查找资料发现MSPCManagerService进程会影响git启动,杀死这个进程就可以了。原文链接:https://blog.csdn.net/m0_68292446/article/details/149779991。找到Microsoft PC Manager Service服务,选择禁止启动即可。1.使用ctrl+shift+esc打开任务管理器。
2025-08-01 17:08:55
134
转载 SpringBoot系列之基于Redis的分布式限流器
1️⃣固定窗口把每 1 秒当作一个“闸门”,闸门内计数 ≤ N 放行,到点就清零。优点:最简单;缺点:闸门交界瞬间可能双倍流量。在这里插入图片描述2️⃣滑动窗口把 1 秒切成很多 100 ms 小格,实时统计最近 1 s 内的小格总和。优点:无临界突发;缺点:需要维护有序集合。在这里插入图片描述3️⃣令牌桶桶里最多 C 个令牌,以固定速率生成;请求必须先“拿”令牌才能放行,桶空即拒绝。优点:允许突发(桶里有存量);缺点:需两条 key 保存令牌+时间。
2025-07-30 10:35:19
70
转载 Spring Boot + Redis + Lua:30分钟搞定高并发接口限流的方案
限流是高并发系统的保命符,则是业界公认的最轻量、最稳的组合。今天手把手带你撸一个可插拔、零侵入、秒级生效的限流组件,10 分钟就能上线!。IP("ip"), // 按 IPUSER("user"), // 按用户ID// 自定义。
2025-07-30 09:56:46
53
转载 从原理到实践:MDC日志链路追踪指南
MDC是日志框架(如 SLF4J、Logback、Log4j2)提供的一个线程绑定的上下文存储机制,用于在日志中附加额外的上下文信息(如请求 ID、用户 ID、链路追踪 ID 等)。它是一个在日志框架中使用的工具,主要用于在多线程环境中追踪和诊断日志。MDC允许开发人员在日志记录中关联特定线程的上下文信息,例如用户ID、请求ID、会话ID等,以便在日志中更方便地进行追踪和定位问题。
2025-07-29 08:49:43
49
转载 Redis + MQ:高并发秒杀的技术方案与实现
在电商秒杀场景中,瞬间爆发的海量请求往往成为系统的生死考验。当并发量达到数万甚至数十万QPS时,传统数据库单表架构难以支撑,而Redis与消息队列(MQ)的组合凭借其高性能与可靠性,成为应对高并发秒杀的黄金方案。Redis + MQ方案通过预扣减 + 事务消息 + 对账Redis承担高并发读写,通过Lua脚本确保原子性,防止超卖;MQ事务消息保障Redis与MySQL的最终一致性,避免数据断层;流水对账作为最后一道防线,及时发现并修复异常。
2025-07-22 09:05:40
78
转载 Spring Boot 接口安全设计:接口限流、防重放攻击与签名验证实战
在当今互联网应用开发中,接口安全至关重要。对于项目而言,保障接口不被恶意调用、数据不被篡改、请求不被重放,是后端开发者必须攻克的安全难题。本文将深入探讨如何设计并实现一套安全、通用、可落地的接口安全方案,涵盖接口限流、防重放攻击与签名验证等关键技术。提供接口文档和签名规则:服务提供方编写详细的接口文档,明确接口的功能、请求参数、响应格式以及签名规则,包括所需的公共参数()、签名算法、appSecret的获取方式等,提供给调用方。
2025-07-22 09:04:38
67
转载 SpringBoot+ResponseBodyEmitter异步流式推送神技,非常强大!
ResponseBodyEmitter 就像 Spring Boot 送给 Java 开发者的一件神器,它让我们能够轻松实现高效的异步流式推送。通过本文的学习,你应该已经掌握了以下核心技能:理解异步流式推送的必要性和应用场景掌握 ResponseBodyEmitter 的核心方法和使用技巧学会与其他技术的对比分析和选型策略了解常见问题的解决方案和性能优化技巧最后,我想说的是,技术的价值不在于它有多复杂,而在于它能解决什么问题。
2025-07-21 09:08:16
196
转载 同步 vs 异步性能差10倍!SpringBoot 高吞吐接口实现终极方案
同步编程就像绿皮火车,虽然稳定但速度慢;而异步编程则是高铁,能在高并发场景下轻松 “飙车”。通过 Spring Boot 的异步实现、线程池调优、WebFlux 响应式编程和数据库优化,你完全可以打造出吞吐量提升 10 倍的高性能接口。
2025-07-18 10:30:00
87
转载 SpringBoot 实现 RAS+AES 自动接口解密
目前常用的加密方式就对称性加密和非对称性加密,加密解密的操作的肯定是大家知道的,最重要的使用什么加密解密方式,制定什么样的加密策略;作为可逆且对称的块加密,AES加密算法的速度比公钥加密等加密算法快很多,在很多场合都需要AES对称加密,但是要求加密端和解密端双方都使用相同的密钥是AES算法的主要缺点之一。为了接口安全我,我和前端约定了传递参数是:用户无限模式的积分+“我们约定的一个数字”+用户id的和,在用Base64加密,请求到服务器我再解密,出用户无限模式的积分;非对称加密算法是一种密钥的保密方法。
2025-07-16 08:56:07
57
转载 SpringBoot + EasyExcel进阶:如何用多线程+Zip压缩实现百万数据导出“零卡顿”?
在 SpringBoot 开发中,传统的同步 Excel 导出方式会导致服务阻塞,直到文件生成完毕,对于大量数据导出,效率低下且用户体验差。本方案通过分拆数据、利用 CompletableFuture 异步并行处理,结合 EasyExcel 导出多个 Excel 文件,最后压缩成 ZIP 文件供用户下载,实现高效且流畅的大量数据导出。
2025-07-16 08:54:28
84
转载 不好意思,HttpClient 可以考虑换了!
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。默认的全局调用适配器工厂是。
2025-06-28 13:40:08
107
转载 聊聊 SSE:让服务器“主动开口说话”的通信方式
轮询:你点了菜之后,每隔一会儿就跑去问服务员:“我的菜好了没?SSE:你点了菜,安心坐着。饭做好了,服务员主动来告诉你:“上菜啦!WebSocket:你和服务员之间装了个对讲机,随时可以互相说话。SSE(Server-Sent Events)是一种基于HTTP的单向通信协议,允许服务器主动向浏览器推送数据。它就像一根从服务器连到浏览器的“数据水管”,打开后服务器可以随时通过这根管子“浇水”(推送数据)。核心特点✅单向通信:服务器 → 浏览器(像广播电台)✅基于HTTP:无需特殊协议✅自动重连。
2025-06-22 18:35:11
776
转载 Server-Sent Events (SSE) 技术解析与实战
Server-Sent Events (SSE) 是 HTML5 标准的一部分,允许服务器主动向客户端推送数据。它基于 HTTP 协议,使用简单的文本格式传输数据。Server-Sent Events (SSE) 是基于 HTTP 的服务端推送技术,特别适合 AI 聊天、实时通知等单向数据流场景。本文介绍了 SSE 的基本数据格式,断线重连及数据续传功能。
2025-06-22 18:34:33
120
转载 说下10个高级的 SQL 查询技巧
如果您注意到,CTE很有用,因为您可以将代码分解为较小的块,但它们也很有用,因为它允许您为每个CTE分配变量名称(即toronto_ppl和avg_female_salary)递归CTE是引用自己的CTE,就像Python中的递归函数一样。递归CTE尤其有用,它涉及查询组织结构图,文件系统,网页之间的链接图等的分层数据,尤其有用。示例问题:给定下面的员工表,写出一个SQL查询,了解员工的工资,这些员工比其管理人员工资更多。Rank()返回从1开始的每行的唯一编号,除了有关系时,等级()将分配相同的数字。
2025-06-13 09:05:37
96
转载 OKHttp 使用 SSE
/ 使用EventSourceListener处理来自服务器的SSE事件。最近做项目需要接入ai会话流式输出的效果采用springboot3+OKHttp。log.error("推送数据失败", e);// JSON 参数配置。Controller代码。
2025-06-13 09:04:59
253
转载 SpringBoot的5种签到打卡实现方案
在现代应用开发中,签到打卡功能广泛应用于企业考勤管理、在线教育、社区运营等多个领域。它不仅是一种记录用户行为的方式,也是提升用户粘性和活跃度的重要手段。本文将介绍5种签到打卡的实现方案。最直接的签到系统实现方式是利用关系型数据库(如MySQL、PostgreSQL)记录每次签到行为。这种方案设计简单,易于理解和实现,适合大多数中小型应用场景。1.3 核心代码实现实体类设计Mapper层Service层Controller层1.4 优缺点分析优点:• 设计简单直观,易于理
2025-06-13 09:04:25
76
转载 《优化接口设计的思路》系列:第七篇—接口限流策略
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。作为一名从业已达六年的老码农,我的工作主要是开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。这其中的原因有三点:一是业务系统本身并不复杂;
2025-06-05 16:52:20
49
转载 SpringBoot 接口防抖(防重复提交)的一些实现方案
在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。key分隔符是用来将多个参数合并在一起的,比如userName是张三,userPhone是123456,那么完整的key就是"张三&123456",最后再加上redis锁前缀,就组成了一个唯一key。从测试的结果上看,防抖是做到了,但是随着缓存消失、锁失效,还是可以发起同样的请求,所以要真正做到接口幂等性,还需要业务代码的判断、设置数据库表的UK索引等操作。
2025-06-05 16:36:58
49
转载 SpringBoot接口安全设计:接口限流、防重放攻击与签名验证实战(附源码)
在对外开放接口的过程中,如何确保接口不被恶意调用、数据不被篡改、请求不被重放,是每一个后端开发者都绕不过去的安全难题。尤其是在企业级对接中,签名校验机制已经成为“标配”。今天我们就以一个 Spring Boot 项目为例,带大家深入了解如何设计并实现一套安全、通用、可落地的接口签名校验方案。需要源码的,文末有源码的获取方式。,时长03:28一、为什么需要签名机制?签名机制的本质是“你说你是你,那你得证明一下”。:攻击者伪造请求,不断调用接口,拖垮服务器;:中间人修改了请求内容;
2025-05-26 11:40:05
193
2
转载 Java实现10万,并发去重,优雅地处理重复请求!
对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。重复的场景有可能是:黑客拦截了请求,重放前端/客户端因为某些原因请求重复发送了,或者用户在很短的时间内重复点击网关重发….本文讨论的是如何在服务端优雅地统一处理这种情况,如何禁止用户重复点击等客户端操作不在本文的讨论范畴。利用唯一请求编号去重可能会想到的是,只要请求有唯一的请求编号,那么就能借用Redis做这个去重——只要这个唯一
2025-05-22 13:45:33
102
转载 MybatisPlus 不香了?小哥自研 Pro 版,效率翻十倍!
具体来说,该类中包含了五个基本HTTP操作(POST, GET),通过不同参数和请求方式对实体对象进行CRUD操作,即添加(insert)、删除(delete)、修改(update)、查询(getById)、存储(save)、列表查询(list)、分页查询(page)、统计数量(count)。需要注意的是,该控制器只是一个模板,实际使用时需要继承该控制器并传入相应的Service类作为泛型S的参数,并实现具体的CRUD方法。类,就可以拥有增删改查,查询列表,分页查询,排序,带参数查询,统计数量。
2025-05-22 13:44:59
147
转载 写了一个mybatis-generator-ui,各种代码自动生成,开源
这个项目是几年前无聊的时候写的,基本上就是借助Mybatis-generator的自动生成功能,做成了可视化的。可以自定义项目,模板和代码生成规则,个人用用还是挺香的,包括我自己做项目也会使用,确实能在一定程度上提升开发效率。如图,这样就导入成功了,系统会根据你的建表语句,自动去识别字段。系统会实时保存的,再转储SQL,可以看到最新的SQL。点击导入表,会从右侧弹出一个抽屉,能够看到所有的表。比如,我要在学生表新增一个状态,就点击新增一行。2025年05月14日 09:00。具体的自定义代码生成,直接看。
2025-05-19 08:31:32
99
转载 6个SpringBoot文件上传下载工具,从此告别“卡顿”和“超时”!!!
到这里,咱整了6种不同的文件上传下载工具,覆盖了从基础的本地存储到云端存储,再到高并发、大文件上传的场景。你要是做一个简单的上传功能,前面介绍的Spring Boot自带Multipart和OSS就能轻松搞定;如果你要做复杂的存储需求,MinIO可以为你提供分布式存储解决方案,给你带来高效且可控的存储体验。如果你做的是一个有较高并发或者大文件上传需求的系统,那就该考虑分片上传了,Nginx做反向代理,配合Spring Boot的高效上传策略,完美解决并发问题。
2025-05-19 08:31:01
230
interface使用
2011-02-06
新闻发布系统(jsp+ajax+oracle+java+javascript)
2011-07-10
航空订票系统(jsp+java+sqlserver+spring+servlet+strut)
2011-07-12
购物系统(shopping)用到的技术有(jsp+servlet+java+sqlerver+strut)
2011-07-09
springmvc+mybatis+mysql+log4j.xml+logjdbc+maven+nexus+dubbo
2017-05-10
springmvc+mybatis+mysql+log4jdbc+excel 实现sql日志输出和excel导出
2017-05-09
火车站售票系统.(java+oracle+jsp+javascript)
2011-07-09
网上书店系统(java+sqlserver+jsp+servlet+strut+spring)
2011-07-09
接口的详解,是你很容易学习接口
2011-03-08
企业电子商城系统(jsp+servlet +strut+sqlserver)
2011-07-09
权限管理系统
2013-03-23
物流信息网(jsp+sqlserver+servlet+strut)
2011-07-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人