自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 MCP工作原理深度解析 - 以yapi-mcp-server为例

问题传统方案MCP方案认证方式AI需要知道每个API的认证细节MCP服务器封装,AI只调用工具请求格式AI需要构造每个API的请求通过inputSchema标准化响应解析AI需要解析各种响应格式MCP服务器统一处理错误处理AI需要处理各种错误类型MCP统一错误格式新增数据源修改AI代码只需添加MCP配置代码耦合高耦合,难以维护低耦合,关注点分离安全性API密钥暴露给AI进程隔离,AI看不到密钥开发效率每个API都要重新实现一次开发,到处使用方案2:为每个数据源写专门的插件❌。

2026-03-02 20:59:48 736

原创 Optional.map 链真的不会 NPE 吗?一次张三的崩溃与 JDK8 源码拆解

输入值│▼──► 返回 empty() ──► 后续 map 全部短路│ ▲▼ │mapper.apply(value) ──► 结果再 ofNullable ─┘▲│└---- 只要这里面的代码解引用 null,NPE 照炸不误!值为 null 时连门都不让进。一旦 lambda 开始执行,里面的空指针就要靠你自己兜底。记住这条分界线,以后再写 map 链,就不会重蹈张三的覆辙。—— 完 ——

2025-12-17 11:30:45 284

原创 肝了 序列化

狭义序列化狭义序列化特指将程序中的对象转换为字节流的过程,主要用于解决对象在网络传输或持久化存储时的格式转换问题。以Java语言为例,当我们需要将一个User对象通过网络发送给另一台服务器时,就需要通过实现Serializable接口来执行序列化操作,将对象转换为字节流。这个过程中的核心关注点是确保对象能够被准确地转换为字节序列,并能在另一端正确地还原广义序列化是一个更宽泛的概念,它包含了所有将数据结构或对象转换为可存储或传输格式的过程。

2025-08-17 12:11:16 996

原创 代码纷繁终有界,final一锁固山河 -认识final关键字

Java中的final关键字具有多层语义,根据修饰目标不同而有所差异。修饰类时禁止继承,修饰方法时禁止重写,修饰变量时禁止重新赋值。对引用类型变量,final仅保证引用不变,对象内容仍可修改。在Java内存模型中,final字段能保证初始化安全和线程安全发布。final方法可实现静态绑定和算法骨架保护,final类则常用于创建不可变对象或实现安全限制。final从简单的不可变声明发展为Java类型系统和内存模型的重要组成部分,是构建安全高效程序的基础工具。

2025-08-15 17:53:20 318

原创 Java 引用的四种境界:强、软、弱、虚,你用对了吗?

Java中的引用的定义很传统:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。这种定义很纯粹,但是太过狭隘,一个对象在这种定义下只有被引用或者没有被引用两种状态,对于如何描述一些“食之无味,弃之可惜”的对象就显得无能为力。我们希望能描述这样一类对象:当内存空间还足够时,则能保留在内存之中;如果内存空间在进行垃圾收集后还是非常紧张,则可以抛弃这些对象。很多系统的缓存功能都符合这样的应用场景。

2025-08-14 16:23:20 392

原创 【无标题】

如果目标类没有实现接口,或者配置了 proxy-target-class=true,Spring 会使用 CGLIB 生成目标类的子类。果目标类实现了接口,Spring 会使用 JDK 动态代理生成代理对象。

2025-08-13 13:51:07 157 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除