刷新
11、IntelliJ IDEA 之关联数据库

博主头像 1、打开数据库工具窗口 如上图所示,打开数据库工具窗口,新建一个 MySQL 的数据库源。 2、下载驱动程序文件 如上图所示,第一次连接该类型数据库的时候,会提示缺少驱动程序文件,点击下载安装即可。 3、配置数据源连接信息 如上图所示,配置数据源的IP、端口、用户、密码以及数据库名称,然后测试连接; ...

记一次微服务架构下的HTTP请求头“大小写”丢失排查之旅

博主头像 在最近的微服务排障过程中,业务方反馈了一个诡异的问题:客户端发起请求时,明确携带了驼峰写法的请求头(如 appKey: asd),但请求经过反向代理和网关,到达后端具体的 Spring Boot 业务服务时,业务代码里取出来的请求头全变成了小写(appkey: asd)。 面对这种链路较长的问题,最 ...

如何编写一个SpringBoot项目告警推送的Starter

博主头像 前言 最近有一点时间了,于是便开始做以前自己想做但是没有完成的事情。之前我其实就一直想写一个通用一点的告警推送组件,把项目里的异常信息、慢请求、状态码异常、JVM 指标,甚至数据库慢 SQL 这些内容统一收集起来,然后直接推送到飞书、钉钉、企业微信这类 IM 工具里。 这样做有两个好处,一个是出了问 ...

JDK中使用的设计模式

博主头像 我的博客一直有一些积压很久的草稿,有些完成度太低、内容过时的我不定期会删除;另一些完成度比较高,但随着工作变动、时间过去太久的博文,无力继续研究相关方向和更新。好在 AI 发展迅速,我借助 DeepSeek 做了 review,修改掉格式错误和笔误,并补充了缺失的章节,算完成了小小的心愿。 本文最初 ...

Spring AI 2.0.0-RC2 发布,越来越强了!

博主头像 大家好,我是R哥。 本来 Spring AI 2.0 预计是 2026/5 月份正式发布的,现在官方宣布已经延期一个月了,从 5 月延期到了 6 月。 好消息,Spring AI 2.0 终于迎来要正式发布的节奏了,RC 版本接连发布,刚发布《Spring AI 2.0.0-RC1》,现在 Spri ...

10、IntelliJ IDEA 之创建工程

博主头像 1、空项目 1.1、新建项目 如上图所示,在欢迎界面点击“新建项目”按钮。 提示:如果在某个项目的界面中,可以通过关闭项目,回到欢迎界面。 1.2、选择创建空项目 如上图所示,选择创建一个空项目作为父工程。 1.3、创建空项目成功 如上图所示,为空项目创建后的初始状态。 2、普通 Java 工程 2 ...

重磅!Spring AI 2.0 RC 版正式发布!!

博主头像 大家好,我是R哥。 本来 Spring AI 2.0 预计是 2026/5 月份正式发布的,现在官方宣布已经延期一个月了,从 5 月延期到了 6 月。 好消息,Spring AI 2.0 终于迎来要正式发布的节奏了。 最近,Spring AI 2.0.0 第一个 RC 版本终于发布了: RC1 版本 ...

Java的List.sort()排序方法源码理解

博主头像 我的博客有一些积压很久的草稿,有的完成度太低、内容过时的我不定期会删除;另一些完成度比较高,但随着工作变动、时间过去太久的博文,无力继续研究相关方向和更新。好在 AI 发展迅速,我借助 DeepSeek 做了 review,修改掉格式错误和笔误,并补充了缺失的章节,算完成了小小的心愿。 本文最初写于 ...

每个线程只管自己的变量,性能却不如单线程?问题出在缓存行

博主头像 伪共享(False Sharing)是多线程编程中一个很容易被忽略,但在高并发场景下又可能非常致命的性能问题。 它最迷惑人的地方在于:从业务代码上看,多个线程并没有修改同一个变量,甚至每个线程都只操作属于自己的那份数据,理论上不应该发生竞争;但从 CPU 的视角看,这些变量可能刚好落在同一个缓存行里 ...

鹅厂面试官问我:“为什么要用 Spring AI,而不是直接调用大模型?”,我笑了说:因为 Spring AI 解决的不是大模型能不能调用的问题。。

博主头像 大家好,我是R哥。 为什么要用 Spring AI,而不是直接调用大模型? 因为 Spring AI 解决的不是「大模型能不能调用」的问题,而是企业级 AI 应用里的统一抽象、模型切换、上下文管理、RAG、工具调用、流式输出、可观测性这些工程化问题。 那 Spring AI 是什么? Spring ...

select、poll、epoll 到底有什么区别?一文讲透 I/O 多路复用

博主头像 概述 同步与异步 同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。此时需要调用者询问处理结果 异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回结果,此时调用者来询问处理结果,被调用者通常依靠事件,回调等机制来通知调用者其返回结果。 ...

9、IntelliJ IDEA 之断点调试

博主头像 9.1、断点调试的作用 代码运行出现错误时,需要排查定位问题所在。 当代码比较简单,或许能直接看出来;但当代码过于复杂的时候,就需要通过断点调试来查找错误。 9.2、断点调试步骤 9.2.1、添加断点 如上图所示,在代码左侧点击一下,即可添加一个断点(再点击即可取消),本示例添加了三个断点。 9.2 ...

网页为什么越来越快?一文看懂 HTTP 的三次进化

博主头像 HTTP/1.1的改进和不足 HTTP/1.1 相比 HTTP/1.0 性能上的改进: 使用长连接的方式改善了 HTTP/1.0 短连接造成的性能开销。 支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间 HTTP/1.1的不足 ...

keycloak~aud受众字段的作用及如何生成

博主头像 在OAuth 2.0框架中,aud(受众)声明的核心功能是明确指定令牌的合法接收者,它是一个关键的安全验证机制。 ⚙️ 核心原则:标识与验证 具体来说,这个机制遵循以下原则: 标识:授权服务器在签发令牌时,会将目标API的唯一标识写入aud字段,明确告知客户端“这个令牌是发给谁用的”。 验证:API ...

<1···678···25>