1、打开数据库工具窗口 如上图所示,打开数据库工具窗口,新建一个 MySQL 的数据库源。 2、下载驱动程序文件 如上图所示,第一次连接该类型数据库的时候,会提示缺少驱动程序文件,点击下载安装即可。 3、配置数据源连接信息 如上图所示,配置数据源的IP、端口、用户、密码以及数据库名称,然后测试连接; ...
在最近的微服务排障过程中,业务方反馈了一个诡异的问题:客户端发起请求时,明确携带了驼峰写法的请求头(如 appKey: asd),但请求经过反向代理和网关,到达后端具体的 Spring Boot 业务服务时,业务代码里取出来的请求头全变成了小写(appkey: asd)。 面对这种链路较长的问题,最 ...
前言 最近有一点时间了,于是便开始做以前自己想做但是没有完成的事情。之前我其实就一直想写一个通用一点的告警推送组件,把项目里的异常信息、慢请求、状态码异常、JVM 指标,甚至数据库慢 SQL 这些内容统一收集起来,然后直接推送到飞书、钉钉、企业微信这类 IM 工具里。 这样做有两个好处,一个是出了问 ...
大家好,我是R哥。 千呼万唤,历经 8 个里程碑版本,2 个候选版本,Spring AI 2.0.0 正式版本终于发布了: 2.0.0 正式版本 Maven 依赖: <dependencyManagement> <dependencies> <dependency> <groupId>org.spr ...
我的博客一直有一些积压很久的草稿,有些完成度太低、内容过时的我不定期会删除;另一些完成度比较高,但随着工作变动、时间过去太久的博文,无力继续研究相关方向和更新。好在 AI 发展迅速,我借助 DeepSeek 做了 review,修改掉格式错误和笔误,并补充了缺失的章节,算完成了小小的心愿。 本文最初 ...
大家好,我是R哥。 本来 Spring AI 2.0 预计是 2026/5 月份正式发布的,现在官方宣布已经延期一个月了,从 5 月延期到了 6 月。 好消息,Spring AI 2.0 终于迎来要正式发布的节奏了,RC 版本接连发布,刚发布《Spring AI 2.0.0-RC1》,现在 Spri ...
线程池这个问题,平时写业务时好像没什么存在感,很多代码里随手就是一个: ExecutorService executor = Executors.newFixedThreadPool(10); 看起来也能跑,任务也能异步执行,线上一开始也不一定会出问题。 但如果面试官问一句:你们项目里的线程池是怎么 ...
1、空项目 1.1、新建项目 如上图所示,在欢迎界面点击“新建项目”按钮。 提示:如果在某个项目的界面中,可以通过关闭项目,回到欢迎界面。 1.2、选择创建空项目 如上图所示,选择创建一个空项目作为父工程。 1.3、创建空项目成功 如上图所示,为空项目创建后的初始状态。 2、普通 Java 工程 2 ...
Claude Code 配置第三方模型后,内置工具到底用的谁的? 核心问题:Claude Code 配了智谱(Z.AI)的 key 后,WebSearch、图片分析、web_fetch 这些能力,是用的 Claude/Anthropic 原生的,还是被替换成了 GLM 的? 结论:全部用的是智谱的 ...
大家好,我是R哥。 本来 Spring AI 2.0 预计是 2026/5 月份正式发布的,现在官方宣布已经延期一个月了,从 5 月延期到了 6 月。 好消息,Spring AI 2.0 终于迎来要正式发布的节奏了。 最近,Spring AI 2.0.0 第一个 RC 版本终于发布了: RC1 版本 ...
我的博客有一些积压很久的草稿,有的完成度太低、内容过时的我不定期会删除;另一些完成度比较高,但随着工作变动、时间过去太久的博文,无力继续研究相关方向和更新。好在 AI 发展迅速,我借助 DeepSeek 做了 review,修改掉格式错误和笔误,并补充了缺失的章节,算完成了小小的心愿。 本文最初写于 ...
伪共享(False Sharing)是多线程编程中一个很容易被忽略,但在高并发场景下又可能非常致命的性能问题。 它最迷惑人的地方在于:从业务代码上看,多个线程并没有修改同一个变量,甚至每个线程都只操作属于自己的那份数据,理论上不应该发生竞争;但从 CPU 的视角看,这些变量可能刚好落在同一个缓存行里 ...
大家好,我是R哥。 为什么要用 Spring AI,而不是直接调用大模型? 因为 Spring AI 解决的不是「大模型能不能调用」的问题,而是企业级 AI 应用里的统一抽象、模型切换、上下文管理、RAG、工具调用、流式输出、可观测性这些工程化问题。 那 Spring AI 是什么? Spring ...
前言 大家好,今天想分享一个我们在做 OAuth Device Flow 时遇到的真实问题。 Device Flow 很适合 CLI、桌面端、电视、IoT 这类不方便输入密码的场景。用户在设备上看到一个链接或验证码,打开浏览器完成授权,设备端再轮询 token。 但我们很快遇到一个安全困扰: cli ...
概述 同步与异步 同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。此时需要调用者询问处理结果 异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回结果,此时调用者来询问处理结果,被调用者通常依靠事件,回调等机制来通知调用者其返回结果。 ...
9.1、断点调试的作用 代码运行出现错误时,需要排查定位问题所在。 当代码比较简单,或许能直接看出来;但当代码过于复杂的时候,就需要通过断点调试来查找错误。 9.2、断点调试步骤 9.2.1、添加断点 如上图所示,在代码左侧点击一下,即可添加一个断点(再点击即可取消),本示例添加了三个断点。 9.2 ...
HTTP/1.1的改进和不足 HTTP/1.1 相比 HTTP/1.0 性能上的改进: 使用长连接的方式改善了 HTTP/1.0 短连接造成的性能开销。 支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间 HTTP/1.1的不足 ...
在OAuth 2.0框架中,aud(受众)声明的核心功能是明确指定令牌的合法接收者,它是一个关键的安全验证机制。 ⚙️ 核心原则:标识与验证 具体来说,这个机制遵循以下原则: 标识:授权服务器在签发令牌时,会将目标API的唯一标识写入aud字段,明确告知客户端“这个令牌是发给谁用的”。 验证:API ...
统一地址:https://test-apim-gateway.xxx.com/mcp-agg/1.0.0/.well-known/oauth-protected-resource 返回样式 { "resource": "https://test-apim-gateway.xxx.com/test/1 ...
大家好,我是R哥。 昨天发了一篇文章《天塌了!Spring AI 2.0 宣布移除智谱!!》,结果被某个粉丝怒怼了: Spring 里面接 AI 就是扯淡? 我没有回他,也不想回他,因为我觉得这个问题很幼稚,成年人不做教育,只做筛选。 我不知道他是不是想表达 Java 做 AI 就是扯淡? 还是单纯 ...