- 博客(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关注的人
RSS订阅