- 博客(620)
- 资源 (5)
- 收藏
- 关注
原创 《Spring Boot免费教程》连载目录
专题目标:打造全网最全、比收费教程更好的Spring Boot免费教程!如何支持:关注我的公众号”程序猿DD“,第一时间获得更新推送!把该页面分享给更多的朋友教程目录本教程内容持续更新连载中…Star关注支持一下,随时获得更新信息!快速入门Spring Boot 2.x基础教程:版本关系Spring Boot 2.x基础教程:快速入门Spring Boot 2.x基础教程:工程结构推荐配置详解Spring Boot 2.x基础教程:配置文件详解Spring Boot 2.x
2021-12-05 22:05:19
840
9
原创 《Spring Cloud Alibaba基础教程》连载目录
Spring Cloud Alibaba与Spring Boot、Spring Cloud之间不得不说的版本关系说说我为什么看好Spring Cloud AlibabaSpring Cloud Alibaba到底坑不坑?注册中心与配置中心:NacosSpring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现Spring Cloud Alibaba基础教程:N...
2019-04-17 10:20:51
5768
2
原创 人工智能如何改变 Anthropic 的工作方式
如果有一天,你走进公司,发现写代码、查 bug、跑实验的大部分体力活,都已经由一位看不见的 AI 搭档在后台悄悄完成了——而你更多是在提问题、定方向、做决策,而不是一行行敲代码,这会是什么感觉?是兴奋,因为产出翻倍、想法终于可以快速落地;还是隐隐不安,因为自己赖以安身立命的“手艺”似乎正在慢慢被接管?对于正在建设 AI 的公司来说,这个问题来得比想象中更早、更猛。
2025-12-18 21:11:00
790
原创 上下文协议(MCP)Java SDK 指南
我们先通过这个类,定义一个非常简单的 MCP 工具,用来打印收到的提示词(prompt),该方法返回一个.build();});这里我们首先定义了输入的 JSON Schema,用来为用户输入建立一个清晰的契约。接着,使用该输入 Schema 来实例化一个Tool,在处理逻辑中提取出prompt参数,并最终返回包含该prompt的结果。在本文中,我们首先回顾了 MCP 及其 Java SDK 的整体架构,重点介绍了McpServerMcpClient和McpHost之间的关系,以及由。
2025-12-17 12:59:52
636
1
原创 JUnit 5 中的 @ClassTemplate 实战指南
简单回顾一下,会把一个测试类变成“模板类”,让它按照不同的调用上下文(invocation context)多次执行。提供者负责提供这些上下文,每一个上下文都会触发一次独立的执行,拥有各自的生命周期和扩展。在实践中,这让我们可以在不同环境或配置下多次运行同一个测试类,同时保持测试代码本身的简单性。我们可以改变运行时的环境配置,而不用复制测试类,或者在单个测试方法里加入复杂的分支逻辑。在本文中,我们从基础概念出发,进一步深入了的使用方式,重点考察了提供者如何为单个测试类提供多个执行上下文。
2025-12-16 20:51:38
911
原创 深入探索剖析 JVM 的启动过程
你可曾想过:当你在终端里敲下java,在main方法真正运行之前,JVM 为了“创造一个可运行你的程序的宇宙”,到底经历了哪些步骤?从参数校验、系统资源探测,到选择垃圾回收器,再到类的加载、链接与初始化,这些看不见的过程决定了应用的启动体验与后续性能。本文用一个极简的 HelloWorld 贯穿全程,结合详细日志,一步步洞察 JVM 的启动机制,帮你在调试和性能优化时更有抓手。
2025-11-16 21:19:10
754
原创 LLM调用的最佳数据格式:TOON,成本直降50%|附Java使用指南
在大模型逐渐融入业务系统的阶段,结构化数据输入/输出已成为落地应用的必需:RAG 检索结果、Agent 工具调用参数、业务查询结果、批处理列表等都需要让自然语言与“可机读”的结构化格式互通。事实标准是 JSON,但在高频调用、海量数据场景下,JSON 的标点开销会显著推高 token 成本。Tokens 为差异的核心在于:TOON 用“缩进 + 一次性字段声明”的方式消除了绝大部分语法标点的冗余;当你在生产环境每天传输成千上万条记录时,冗余标点的累计开销会直接转化为可观的 API 费用。
2025-11-14 17:01:19
841
原创 探索 Java 中的新 HTTP 客户端
本文探讨了 Java 11 中标准化后的HttpClientAPI:在保留易用性的同时,引入了 HTTP/2、异步、推送承诺、代理、重定向策略、认证器、Cookie 管理等现代化能力,让 Java 的 HTTP 编程更高效、更现代。Java专题。
2025-11-14 10:16:21
727
原创 Spring Boot 进阶:企业级性能与可观测性指南
扩展 Spring Boot 应用不仅仅是添加更多服务器。它关乎——在水平扩展之前,从现有硬件中榨取每一分性能。在本文中,我们将探讨如何为高性能、云原生环境调优、扩展和分析 Spring Boot 应用——包含和,你可以立即应用。
2025-11-13 23:03:54
968
原创 规范驱动开发:用 AI 写生产级代码的完整指南
规范驱动开发是一种方法论:用“形式化、详尽的规范”作为可执行蓝图,驱动 AI 进行代码生成。规范是事实来源,指导自动化的生成、校验与维护;你编写清晰的需求,AI 负责实现。传统开发通常是“开发者写需求 + 写代码”,流程为“需求 → 设计 → 手写代码 → 测试”。规范驱动开发将其变为“需求 → 详细规范 → AI 生成 → 验证”。关键差异在于:先规范、后代码;AI 根据规范实现,开发者聚焦架构、需求与验证;质量通过系统化闸门把关;并通过持续反馈把错误信息融入规范,迭代提升输出质量。
2025-11-13 09:37:03
1382
原创 我如何使用 Claude Code 的每个功能
我把斜杠命令当作常用提示语的快捷方式,仅此而已。/catchup:让 Claude 读取当前 Git 分支的所有改动文件。/pr:一个简单辅助命令,用于清理代码、暂存变更并准备 PR(拉取请求)。我认为,维护一长串复杂的自定义斜杠命令是一种反模式。代理的意义在于:你几乎可以用自然语言表达需求并得到可合并的结果。一旦强迫工程师(甚至非工程师)必须学习一套藏在某处的“神奇命令”才能完成工作,就偏离了初衷。结论:把斜杠命令当作简单、个人化的快捷方式,而不是用来替代更易用的CLAUDE.md。
2025-11-12 10:42:38
1046
原创 Spring Boot快速集成MiniMax、CosyVoice实现文本转语音
在一些需要高质量文本转语音(TTS)的场景中(比如:有声书配音、播客等)。之前介绍的方案可能效果没有那么好。此时就比较推荐使用 MiniMax、CosyVoice这些提供的音色,这些音色的效果会更加拟人、逼真,接近真人发音。这里依然通过 UnifiedTTS 的统一接口来对接,这样我们可以在不更换客户端代码的前提下,快速在 MiniMax、CosyVoice等引擎之间做无缝切换。
2025-10-23 16:40:33
1346
原创 Jackson 序列化的隐性成本
我们常以为接口的瓶颈在数据库或业务逻辑,但在高并发、海量请求下,真正吞噬 CPU 的,可能是“把对象变成 JSON”的那一步。当监控把序列化时间单独拆出来,你会惊讶它能让账单失控。这篇《The Hidden Cost of Jackson Serialization》对我启发很大:默认好用的 Jackson,在某些场景可能成为热路径的成本中心。下面顺手分享给大家参考,以下内容翻译整理自。Jackson 很强大,直到你看到它真正让你付出了什么代价。我们的 REST API 正在大把大把的花钱。
2025-10-23 12:02:38
900
原创 @Autowired 的Bug让我们白忙三天
凌晨两点,支付服务的告警像雪崩一样砸来,你在控制台和栈跟踪间疯狂穿梭,却始终想不明白:Spring 的依赖注入,怎么会在生产里突然“失手”?我最近读到一篇事故复盘,讲的是两个看似无害的改动如何在生产环境联手把系统击穿,分析深入、启发很大。于是我把它完整翻译出来,分享给大家,希望能帮你少走弯路。以下内容翻译自:https://medium.com/javarevisited/the-autowired-bug-that-cost-us-3-days-7d24a1e31435。
2025-10-22 21:36:03
968
原创 微服务正在悄然消亡:这是一件美好的事
最近在做的事情正好需要系统地研究微服务与单体架构的取舍与演进。读到这篇文章《Microservices Are Quietly Dying — And It’s Beautiful》,许多观点直击痛点、非常启发,于是我顺手把它翻译出来,分享给大家,也希望能给同样在复杂性与效率之间权衡的团队一些参考。
2025-10-22 19:27:19
964
原创 Java 25 中的 6 个新特性解读
本文聚焦 Java 25 中已永久化的 6 个特性:紧凑源文件与实例 main 方法、灵活的构造器主体、Scoped Values、模块导入声明、AOT 命令行易用性与方法剖析、分代 Shenandoah。通过简明说明与示例代码,帮助你快速把握其设计意图与落地用法。
2025-10-20 19:58:21
1038
原创 变量名越怪,JVM 越快?
在软件工程的共识里,变量命名越清晰越好——意图明确、语义完整、见名知意,这能降低沟通成本、减少误解、提升可维护性。几乎所有风格指南都把“有意义的命名”视为第一原则。但今天读到的一篇文章,把这条铁律里的“性能部分”掀了桌:在 Java 的某些栈中,刻意缩短、甚至“错拼”的变量名,可能真的让服务更快。不是业务逻辑的变化,而是更短、更“随机”的名字在字符串常量池、哈希和反射路径上更省。在作者的压测里,吞吐提升最高接近 49%。这听起来反常识,但他用微基准、压测与分析器把它变成了一个严肃命题。
2025-10-19 14:16:23
998
原创 Spring Boot 集成免费的 EdgeTTS 实现文本转语音
在需要文本转语音(TTS)的应用场景中(如语音助手、语音通知、内容播报等),Java生态缺少类似Python生态的Edge TTS 客户端库。不过没关系,现在可以通过 UnifiedTTS 提供的 API 来调用免费的 EdgeTTS 能力。同时,UnifiedTTS 还支持 Azure TTS、MiniMax TTS、Elevenlabs TTS 等多种模型,通过对请求接口的抽象封装,用户可以方便在不同模型与音色之间灵活切换。
2025-10-14 15:42:46
889
原创 使用 ONNX 将 AI 推理引入 Java:企业架构师实用指南
作为被各训练框架广泛支持的开放标准,组织可以自由使用偏好的生态进行训练,并在 Java 中部署,而不必担心供应商锁定或 API 漂移。的系统上,推理可以以最小配置卸载到 GPU。一个可插拔、对环境敏感的部署模型,无论是嵌入式、共享式还是容器化,都能确保推理无缝融入现有的 CI/CD 与运行策略。ONNX 让团队可以将 Python 中训练的模型导出并在 Java 中原生运行,避免嵌入 Python 运行时、gRPC 桥接或容器化的 Python 推理服务,这些都会增加运维摩擦并复杂化安全部署。
2025-10-13 16:45:46
755
原创 将 GPU 级性能带到企业级 Java:CUDA 集成实用指南
统一计算设备架构(CUDA)是 NVIDIA 的并行计算平台与 API 模型,允许开发者在 NVIDIA GPU 上实现大规模并行执行的软件。它通常通过 C 或 C++ 使用,你需要编写在 GPU 上并行运行的“内核(kernel)”。数据并行工作负载(如图像处理、金融仿真、日志转换)细粒度并行(成千上万线程)对计算受限操作的加速。
2025-10-12 23:53:23
878
原创 如何在 Spring Boot 应用中配置多个 Spring AI 的 LLM 客户端
越来越多的现代应用开始集成大型语言模型(LLM),以构建更智能的功能。如何使用Spring AI快速整合LLM能力到自己的Spring Boot应用,在之前的博文中有过很多篇关于使用Spring AI使用不同供应商LLM的整合案例。虽然一个 LLM 能胜任多种任务,但只依赖单一模型并不总是最优。不同模型各有侧重:有的擅长技术分析,有的更适合创意写作。简单任务更适合轻量、性价比高的模型;复杂任务则交给更强大的模型。本文将演示如何借助 Spring AI,在 Spring Boot 应用中集成多个 LLM。
2025-10-10 20:27:11
945
1
原创 Netflix确保数亿用户观影体验的“事件”管理是如何构建与实践的?
在流媒体服务随时可能因系统故障而中断的时代,Netflix 如何确保数亿用户的观影体验始终稳定?本文将揭晓其技术团队的关键实践 —— 从中央 SRE 团队独揽事件管理,到让每个工程师都能主动发起并处理事件的转型之路。你将看到他们如何通过工具选型、流程标准化和文化重塑,把事件从 “可怕的故障” 转化为 “可学习的机会”,甚至让工程师在凌晨三点也能轻松启动事件响应。
2025-10-03 19:24:54
695
原创 到底要不要 Vibe Coding ?
这种微观的风险评估会逐渐成为你的第二天性。你用 AI 越多,就越能对这些问题形成直觉。你会逐渐感知哪些改动可以信任,哪些需要更仔细的检查。目标不是用清单拖慢自己,而是形成一些直觉性的习惯,帮助你在利用 AI 的能力与降低其副作用风险之间找到平衡。
2025-09-29 21:37:11
1054
原创 如何用 ShedLock 让 Spring Boot 的定时任务在多实例环境下只执行一次
一句话总结:用 ShedLock,可以让 Spring 在多实例部署下也能把定时任务“稳稳只跑一次”。
2025-09-28 15:20:27
991
原创 Spring Boot 4 与 Spring Framework 7 全面解析:新特性、升级要点与实战指南
有了 API 版本控制和弹性注解,应用既能轻松升级,又能扛住各种异常靠 JSpecify 的空安全和 Kotlin 支持,运行时出错能少很多。声明式 HTTP 客户端,服务之间调用不用写一堆请求代码了。原生镜像支持和可观测性工具加强,往云环境上部署更顺了。跟所有大版本升级一样,关键是早点拿项目测。尤其是依赖升级和旧 API 替换这两块,早发现问题早解决。不过话说回来,升级后开发效率变高、性能变好、维护也省心,这点麻烦还是值得的。个人博客和同名公众号。
2025-09-26 13:44:44
1192
原创 聊聊昨天CodeBuddy开发者交流会收获的新理解与新技能
从这次活动的分享嘉宾所展示的案例(UI为蓝紫色)和观点中可以看到,对于模型的选择,实战的开发者们几乎都是以Claude为主。所以,如果您刚上手AI Coding,且是结果导向的应用,那么在条件允许的情况下,一定要优先考虑Claude模型。(2)纠正了对CLI的理解,不是简化版(无GUI)的开发工具,而是贯穿软件工程全链路的软件开发智能体,是更高级、更专业的开发工具。(3)一些来自实践的启发。以上是我参与这次活动印象最深的几个点,关于我的思考不一定对,大家觉得有啥理解错误或者其他观点的欢迎留言交流。
2025-09-19 15:23:31
382
原创 为什么你的 Vibe Coding 体验那么差?
昨天下午参加了腾讯云上海架构师同盟组织的线下沙龙《AI时代架构师如何Vibe Coding》。对于这个前沿话题,分享嘉宾各有观点,引发了激烈的辩论,作为听众的我也是收获颇丰。由于这半年的时间,我几乎每天都在与Vibe Coding打交道,从最初Cursor、到后来的Trae、CodeBuddy、Claude Code,每次接触新工具,我都会用一个实际的可上线小产品为目标去尝试,也就是说整个过程会涉及到数据库设计、后端开发、前端开发、运维部署等多方面的考量。
2025-09-01 16:09:44
703
1
原创 退订Cursor了!深度使用Claude Code两周,效果惊艳
主要是面向开发者的接口服务,通过封装接口和参数,帮助开发者用一个接口轻松对接各种不同厂商的语音合成服务,简化开发流程降低开发复杂度和成本。可以帮助你快速接入各种不同TTS服务,统一一个API,标准化参数,告别各个不同厂商的API定义、不同的参数标准导致的使用和切换上的不便。作为一名后端开发,本来想简单搞搞,主要把接口做好就可以了,没想到Claude Code太过强大,我都怀疑这是不是我做的了…里面还有一些动态效果,图片无法展示,想体验的也可以直接访问官网:https://unifiedtts.com/。
2025-09-01 11:28:00
272
原创 8 个 Spring Boot 缓存技巧,大大缩短你的API响应时间
默认的缓存键往往过于宽泛或过于简单。自定义键生成器可以避免缓存污染和意外的缓存未命中。用户ID不够唯一时,用户资料接口缓存了错误的数据。// 获取并构建用户资料每个用户和语言环境的组合都会单独缓存,彻底解决了资料错乱的问题。缓存不是简单的技术技巧——它需要你深入了解数据特性、理解用户行为模式,并保持持续的关注。这8个缓存模式让我的API从性能瓶颈中解脱出来。用户体验得到了显著改善,基础设施成本大幅下降,团队也不再为流量高峰而担忧。
2025-08-20 12:00:00
803
原创 Spring Boot 4 的 11 项重大变更全面解析!
编程是一个终身学习的职业。框架和工具的变化意味着我们获得了更便捷、更用户友好的方法,这对开发者来说是有益的。所以,让我们一起学习、使用和实验它们吧。
2025-08-19 10:35:23
1434
原创 重磅!OpenAI 发布开源模型:GPT-OSS,效果媲美 o4-mini
GPT-OSS-120B:约 120 亿参数,设计用于高推理需求的生产环境,性能接近 OpenAI 的 o4-mini 模型,可在单块 80GB GPU 上高效运行。GPT-OSS-20B:约 20 亿参数,优化为低延迟,适合在 16GB 内存的消费级硬件上运行,性能与 o3-mini 相当,适合本地推理或快速迭代。这就非常棒了,一张16G显存的消费级显卡还是很容易获得的。
2025-08-06 08:00:00
878
原创 10个Java开发者必须改掉的过时编程习惯
"如果你一直拖着过去不放,就无法向前进步。"这正是我在代码审查时对团队说的话。然而,每次我打开一个拉取请求时,我仍然看到过时的Java特性、坏习惯和应该在几年前就被淘汰的编码习惯。所以,如果你今天在使用Java,无论你是初级、中级还是高级开发者,这篇文章都适合你 🫵。其中一些观点可能会让你感到不舒服。有些可能与你所学的相违背。但这正是你应该读到最后的原因。
2025-07-01 11:00:33
642
原创 如何使用 Spring AI 实现文本转 SQL
随着技术的发展,现代应用程序越来越多地采用自然语言界面来简化用户与系统的交互。这种方式在数据检索场景中尤其实用,让非技术用户也能通过简单的自然语言提问来获取所需信息。文本转 SQL 聊天机器人就是这样一个典型应用。它就像是人类语言和数据库之间的翻译官,通过大型语言模型(LLM)将用户的自然语言问题转换为可执行的 SQL 查询,然后在数据库中执行查询并返回结果。本文将带你使用 Spring AI 构建一个文本转 SQL 聊天机器人。
2025-06-24 10:14:45
1027
原创 Spring Boot 虚拟线程 vs WebFlux:谁更胜一筹?
Spring Boot 虚拟线程和 WebFlux 都是构建可扩展应用的强大工具,但各自适用于不同的需求场景。虚拟线程凭借其简洁性、兼容性和以最小改动实现高并发处理的能力,成为大多数项目的首选方案。它为传统 Spring MVC 应用带来了革命性改变,在保持简单性的同时提供了接近响应式的性能表现。而WebFlux在需要超低延迟或流处理的特殊场景中仍然具有不可替代的价值,其响应式模型在这些领域表现卓越。对于 2025 年的大多数开发者而言,虚拟线程在性能和开发效率之间找到了最佳平衡点,使其成为默认选择。
2025-06-19 22:48:52
1250
原创 Java 24 中最值得关注的 5 大特性
Java 24 是平台演进过程中一个大胆而深思熟虑的重要里程碑。经验丰富的 Java 开发者不仅会欣赏这次发布的变化数量,更会被其深度和发展方向所震撼。本次发布包含 24 个 JEP,显而易见,OpenJDK 社区正在性能、可扩展性和现代开发需求方面全力投入。在这篇文章中,我将为大家详细介绍我认为对资深工程师最具影响力的五个特性:分代 Shenandoah(实验性)、紧凑对象头(实验性)、Stream Gatherers、提前类加载与链接,以及虚拟线程同步无钉扎。
2025-06-19 08:45:24
986
原创 Spring Framework 6.1.21 和 6.2.8 发布,修复 CVE-2025-41234 文件下载漏洞
此次安全漏洞波及 Spring Framework 多个版本,攻击者通过精心构造请求,诱使用户下载恶意文件,严重威胁系统安全。。
2025-06-16 20:37:02
1067
原创 告别微服务,迎接SCS(Self-Contained Systems)?新概念还是炒冷饭?
对于微服务,相信大家都已经不陌生了,那什么是 SCS(Self-Contained Systems)呢?SCS是一种将大型系统的功能分离为许多独立协作系统的架构方法。自治:每个SCS都是一个自治的Web应用程序。对于SCS的领域而言,所有数据、处理数据的逻辑以及渲染Web界面的所有代码都包含在SCS内部。一个SCS可以独立完成其主要用例,无需依赖其他系统的可用性。单一团队:每个SCS由一个团队负责。
2025-06-16 12:00:27
1298
原创 我的独立开发日志:整了波超拟人音色,有声书制作效果惊艳!
如果您觉得该工具效果不错,欢迎来免费使用,也欢迎提出宝贵建议!没有想到现在效果已经可以这么好了!有声书创作已经这么简单了!
2025-06-15 11:00:34
414
原创 Spring Boot 中为什么不要将 DTO 与 Entity 混合使用
刚入门的时候,没有人告诉我要分离 DTOs 和 Entities。我只能通过踩坑来学习——各种 bug、奇怪的行为、接口异常等等。如果你正在开发 Spring Boot 应用,建议尽早创建专门的 DTOs。你在混合使用 DTOs 和 Entities 时遇到过类似问题吗?欢迎在评论区分享你的经验。
2025-06-13 22:00:00
1306
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅