如何将Spring Boot 2接口改造为MCP服务,供大模型调用!

Solon MCP 与 Spring AI 在现有服务改造中的全面对比:易用性与扩展性深度分析

一、背景与概述

随着人工智能技术的快速发展,将 AI 能力集成到现有 Java 服务中已成为企业数字化转型的关键需求。在这一背景下,MCP(Model Context Protocol)作为一种新兴的开放标准,正在成为连接大语言模型与外部工具和数据源的桥梁。Solon MCP 和 Spring AI 作为两种主流的 Java 开发框架,都提供了对 MCP 协议的支持,但在设计理念、技术实现和适用场景上存在显著差异。

Solon 是新一代的 Java 企业级应用开发框架,它从零开始构建,不依赖 Java-EE,具有灵活的接口规范和开放生态,旨在替代 Spring 生态系统。Solon AI 是 Solon 框架在 AI 领域的扩展,提供了完整的智能体应用开发支持,包括 MCP 协议实现。而 Spring AI 是 Spring 官方推出的 AI 应用开发框架,旨在将 AI 能力无缝集成到 Spring 生态系统中。

对于已经构建了大量 Java 服务的企业来说,选择合适的 AI 集成框架至关重要。本文将从易用性扩展性两个维度,深入分析 Solon MCP 相较于 Spring AI 在现有服务改造场景下的优势,帮助开发者做出明智的技术决策。

1.1 技术架构概览

Solon MCP 和 Spring AI 在技术架构上存在明显差异:

维度 Spring AI MCP Solon AI MCP
JDK 版本要求 仅支持 JDK 17+ 支持 JDK 8+
架构设计 模块化三层架构(客户端 / 服务器层、会话层、传输层) 轻量化设计,类似 MVC 开发风格
开发复杂度 需配置较多组件(如 ToolCallbackProvider、协议版本协商) 极简配置(仅需 @McpServerEndpoint 注解)
传输协议支持 原生支持 SSE(HTTP 流式)和 STDIO(进程间通信) 同样支持 SSE 和 STDIO,但配置更简化
扩展性 深度整合 Spring 生态(如 Spring Boot Starter、依赖注入) 灵活嵌入多框架(Spring Boot2/3、JFinal、Vert.x)
生态与社区 背靠 Spring 官方生态,文档完善,社区活跃 国产框架,生态逐渐完善,侧重轻量化和本土化需求

二、易用性对比分析

在现有服务改造过程中,易用性直接影响开发效率和项目周期。Solon MCP 在以下几个方面展现出明显优势:

2.1 开发门槛与学习曲线

Solon MCP 采用了极简的开发模型,大幅降低了学习门槛:

声明式开发模型 :Solon MCP 采用注解驱动的开发方式,开发者只需使用@McpServerEndpoint@ToolMapping等注解,即可快速将现有服务转换为 MCP 服务。这种方式与传统的 Web 开发习惯高度一致,显著降低了学习成本。

复制代码
@McpServerEndpoint(sseEndpoint = "/mcp/sse")
@Mapping("/web/api")
@RestController
public class McpServerTool {
  @ToolMapping(description = "查询天气预报")
   @GetMapping("get\_weather")
  public String get\_weather(@ToolParam(description = "城市位置") String location) {
      return "晴,14度";
   }
  @ToolMapping(description = "查询城市降雨量")
  @GetMapping("get\_rainfall")
   public String get\_rainfall(@ToolParam(description = "城市位置") String location) {
       return "555毫米";
   }
}

统一参数注解 :Solon AI v3.3.0 移除了专用的ToolParam注解,改用更通用的Param注解,保持了与 Solon 生态的一致性,降低了开发者的记忆负担。

相比之下,Spring AI MCP 需要配置较多组件(如ToolCallbackProvider、协议版本协商),学习曲线较陡。开发者需要熟悉 Spring 的三层架构设计和众多配置类,这对于不熟悉 Spring 生态的开发者来说有一定难度。

2.2 对现有代码的兼容性与迁移成本

Solon MCP 在兼容现有代码方面表现出色:

多框架支持:Solon AI 可以轻松嵌入到 Spring Boot2、Spring Boot3、JFinal、Vert.x 等框架中使用,这意味着企业无需完全重构现有系统即可引入 MCP 功能。

多种改造方案:Solon 提供了多种将现有 REST 服务转换为 MCP 服务的方案,包括:

  1. 复用 MVC 注解 :在原有 MVC 注解基础上,给方法和参数添加描述信息description,再添加@McpServerEndpoint注解即可。

  2. 添加完整的 MCP 相关注解:这种方案适用于 Spring Boot2-web、Spring Boot3-web、Spring-MVC 或 JFinal 等项目,原控制器的代码无需改动,只需添加 MCP 相关注解,就像添加 Swagger 注解一样。

一键迁移工具:Solon 提供了通过 OpenRewrite 将现有 REST 服务一键转换为 MCP 服务的工具,可节省 90% 的迁移成本。

相比之下,Spring AI 更强调与 Spring 生态的深度集成,对于非 Spring 项目的兼容性有限。如果企业使用的是其他框架(如 JFinal、Vert.x 等),迁移到 Spring AI 的成本较高。

2.3 配置复杂度与灵活性

Solon MCP 在配置方面提供了简洁而灵活的解决方案:

极简配置 :Solon MCP 只需通过@McpServerEndpoint注解即可完成基本配置,例如指定 SSE 端点路径。

灵活的客户端配置:Solon MCP 客户端配置简单直观:

复制代码
@Bean
public McpClientProvider mcpClientProvider() {
   return McpClientProvider.builder()
           .server("http://ai-service:8080/mcp")
          .channel("sse") // 支持stdio和sse两种通道
         .headerSet("Authorization", "Bearer " + System.getenv("MCP\_TOKEN"))
          .httpProxy("http://proxy:8888") // 可选代理配置
           .build();

}

多环境支持:Solon MCP 可以轻松适应不同的运行环境,包括开发、测试和生产环境,通过简单的配置文件切换即可实现。

相比之下,Spring AI 虽然提供了丰富的配置选项,但也增加了配置的复杂性。开发者需要了解 Spring 的配置机制和各个 AI 模型的特定配置参数,这对于初学者来说可能会感到困惑。

三、实践

3.1 引入依赖

java 复制代码
<dependency>
            <groupId>org.noear</groupId>
            <artifactId>solon-ai-mcp</artifactId>
 </dependency>

3.2 接口上添加mcp注解

  1. 控制器上添加mcp端点
java 复制代码
@McpServerEndpoint(channel = McpChannel.SSE, name="demo1", mcpEndpoint = "/mcp/demo1/sse")

2.方法添加ToolMapping

java 复制代码
    @ToolMapping(description = "发送邮件,title是文章标题, content是文章内容,sender是发送人,receiver是接收人,入参要是json对象,返回是发送成功的邮件id")
    @PostMapping("sendMail")
    public String sendMail(@Body @RequestBody InformationData data){
        String content = data.getContent();
        String sender = data.getSender();
        String title = data.getTitle();
        String receiver = data.getReceiver();
        log.info("{}{}{}{}", sender, title, content, receiver);
        return "SUCCESS"+System.currentTimeMillis();
    }

3.3 配置mcp服务端



3.4 测试

🌟 总结

通过MCP协议,你的Spring Boot接口可以轻松"升维",成为大模型的"手和脚"!🤖🛠️ 这种改造不仅能提升AI应用的实用性,还能为你的业务打开新的智能化场景!🌈

如果你正在探索AI+传统系统的融合,不妨试试这个方案!记得点赞收藏哦~👍✨

相关推荐
zhangxuyu11182 小时前
Spring boot 学习记录
java·spring boot·学习
做运维的阿瑞2 小时前
告别性能焦虑:Python 性能革命实践指南
开发语言·后端·python
元气满满的霄霄2 小时前
Spring Boot整合缓存——Ehcache缓存!超详细!
java·spring boot·后端·缓存·intellij-idea
. . . . .2 小时前
GPT的前世今生及发展
人工智能·gpt
唐叔在学习2 小时前
文档转换神器pypandoc详解:解锁Python跨格式文档转换的终极姿势
后端·python
aloha_7893 小时前
顺丰科技java面经准备
java·开发语言·spring boot·科技·spring·spring cloud
DatGuy3 小时前
Week 19: 深度学习补遗:自注意力和Transformer Encoder架构
人工智能·深度学习·transformer
colus_SEU3 小时前
【循环神经网络5】GRU模型实战,从零开始构建文本生成器
人工智能·rnn·深度学习·gru
拂晓银砾3 小时前
数据库字段多类型Json值处理
java·后端