首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Spring AI:Java开发者的智能应用新基建

Spring AI:Java开发者的智能应用新基建

原创
作者头像
用户12689597
发布2026-08-18 17:20:45
发布2026-08-18 17:20:45
350
举报

引言:当Java遇见AI

2025年Spring AI 1.0 GA正式发布,到如今全面拥抱Agent工程,Spring AI已成为Java开发者构建企业级AI应用的首选框架-4

大模型浪潮席卷全球的这几年,Python开发者有LangChain,JavaScript开发者有各种AI SDK。Java开发者呢?一直缺少一个官方的、统一的答案。直到Spring官方出手,Spring AI的出现补上了这个缺口。

Spring AI的核心理念:将企业的“数据”和“API”与“AI模型”连接起来,所有主流AI模型的API被统一成了一致的高层抽象-1-4-7

你只需学会一套接口,就能调用OpenAI、阿里云通义千问、DeepSeek、Claude等不同模型。切换模型?改个配置文件就行。这就是Spring AI的魅力——它不是一个简单的“AI SDK”,而是一套完整的AI应用开发框架-10

第一部分:Spring AI是什么

1.1 核心定位

Spring AI是Spring官方在2024年推出的AI开发框架,它将Spring的设计原则——可移植性、模块化设计和POJO编程模型——应用到了AI工程领域-4-10

如果把LangChain比作Python世界的AI应用“瑞士军刀”,那么Spring AI就是Java世界的“Spring式”AI开发底座。它继承了Spring Boot“约定大于配置”的基因,让AI能力的集成变得像添加一个普通的Starter一样简单-5

1.2 支持的能力矩阵

Spring AI覆盖了企业级AI应用的主流需求-4-7-10

  • 聊天完成:对话、代码生成、内容创作(OpenAI、通义千问、DeepSeek、Claude等)
  • 嵌入(Embedding):文本向量化、语义搜索
  • 多模态:图像识别、视频理解(GPT-4o、Qwen-VL)
  • 函数调用(Tool Calling):外部API集成、Agent工具调用
  • 向量数据库:PGVector、Milvus、Redis、Chroma、Azure Cosmos DB等全生态支持
  • MCP:模型上下文协议支持,标准化外部工具集成

第二部分:三步集成——让AI能力触手可及

如果你已是Spring Boot开发者,集成AI能力真的只需要三步-5

第一步:添加依赖

代码语言:javascript
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.5.0</version>
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-bom</artifactId>
            <version>1.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <!-- Spring AI OpenAI Starter -->
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-starter-model-openai</artifactId>
    </dependency>
    <!-- Spring Boot Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

注:DeepSeek采用与OpenAI完全兼容的API规范,可以直接复用OpenAI客户端实现-5

第二步:配置凭证

代码语言:javascript
复制
spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}  # 使用环境变量,切勿硬编码
      base-url: https://api.deepseek.com  # 兼容OpenAI API的端点
      chat:
        model: deepseek-chat

第三步:编写调用代码

代码语言:javascript
复制
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ChatController {
    
    private final ChatClient chatClient;
    
    public ChatController(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder.build();
    }
    
    @GetMapping("/chat")
    public String chat() {
        return chatClient.prompt()
            .user("Tell me an interesting fact about Java")
            .call()
            .content();
    }
}

就这么简单。注入ChatClient,调个prompt,拿到结果-8。如果没有Spring AI,你可能要手动处理HTTP请求、JSON序列化、错误重试、流式响应……代码量翻几倍。

第三部分:核心能力深度解析

3.1 ChatClient:AI交互的首选接口

ChatClient提供了流畅的DSL API,是Spring AI官方推荐的主要交互方式-4-7。它与WebClientRestClient等Spring经典API风格一致。

对比直接使用ChatModelChatClient的优势明显:

特性

ChatModel

ChatClient

API复杂度

高(需手动构建Prompt)

低(流式DSL)

Advisor支持

❌ 不支持

✅ 内置支持

记忆管理

需手动实现

✅ 自动会话记忆

流式响应

需额外封装

✅ 一行代码开启

3.2 Advisor:拦截器让AI应用更智能

Advisor是Spring AI的一个核心设计,它封装了常见的生成式AI模式——在调用模型前后对数据进行转换和增强-7-10

代码语言:javascript
复制
// 开启会话记忆——让AI记住对话上下文
String response = chatClient.prompt()
    .user("我的名字是张三")
    .advisors(new PromptChatMemoryAdvisor(chatMemory))
    .call()
    .content();

// 第二次调用,AI能记住之前说过的话
String response2 = chatClient.prompt()
    .user("我叫什么名字?")
    .advisors(new PromptChatMemoryAdvisor(chatMemory))
    .call()
    .content();  // 返回:你叫张三

Advisor的插拔式设计让开发者可以在不修改核心业务逻辑的情况下,对模型的输入输出进行灵活定制——提示词改写、安全过滤、日志记录、记忆管理都可以通过Advisor实现-4-10

3.3 Tool Calling:让AI真正“动手做事”

Tool Calling(函数调用)是Agent能力的核心。Spring AI通过@Tool注解让模型能够调用Java方法,与外部系统交互-1-4

代码语言:javascript
复制
import org.springframework.ai.tool.annotation.Tool;

@Service
public class WeatherService {
    
    @Tool(description = "获取指定城市的实时天气")
    public String getWeather(String city) {
        // 实际调用天气API
        return city + ":晴,25°C";
    }
}

// 在Controller中注入并使用
@RestController
public class AgentController {
    
    private final ChatClient chatClient;
    
    public AgentController(ChatClient.Builder builder, WeatherService weatherService) {
        this.chatClient = builder
            .defaultTools(weatherService)  // 注册工具
            .build();
    }
    
    @GetMapping("/weather-agent")
    public String askWeather() {
        return chatClient.prompt()
            .user("北京今天天气怎么样?")
            .call()
            .content();  // 模型自动判断需要调用getWeather工具
    }
}

3.4 RAG与向量存储

Spring AI提供了统一的向量存储抽象层,支持PGVector、Milvus、Redis、Chroma等主流向量数据库-1-4-7

通过QuestionAnswerAdvisor,RAG能力可以一行代码开启-4

代码语言:javascript
复制
@GetMapping("/rag")
public String ragQuery(@RequestParam String question) {
    return chatClient.prompt()
        .user(question)
        .advisors(new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()))
        .call()
        .content();
}

第四部分:Spring AI 2.0——Agent时代的新底座

Spring AI 2.0已于2026年6月正式发布GA版本,标志着框架从“让Java调用大模型”走向“让Java构建Agent应用”的新阶段-12

关键升级

  1. Tool Calling全面重构:统一了所有模型的工具执行机制,ToolCallingAdvisor成为标准方式-3-9
  2. ChatMemory改进:消息窗口溢出时按用户消息边界截断,避免对话被切断-3
  3. 结构化输出增强:支持直接在entity()调用中配置输出格式和校验-3
  4. 空安全全面引入:整个代码库使用JSpecify注解,工程项目更健壮-12
  5. MCP协议升级:Streamable HTTP成为默认服务器协议,弃用SSE传输方式-9

Spring AI 2.0基于Spring Boot 4.1和Spring Framework 7,最低要求Java 21-3-12

结语:Java开发的“AI标配”

Spring AI的价值,不是提供一个“能调大模型的API”,而是让Java开发者能用Spring的方式做AI应用开发。它把模型切换、工具调用、记忆管理、RAG这些复杂的事情封装成了熟悉的Spring模式。

对于已经在Spring技术栈上投入的企业,Spring AI几乎是零成本的AI能力升级路径——不用换技术栈,不用重新培训团队,用Spring的方式写AI应用。

对于开发者而言,Spring AI正在成为Java开发者的“AI标配”。无论是给现有系统加上AI能力,还是从零开始搭建RAG知识库或Agent应用,Spring AI都值得你认真了解-4

未来的竞争,不在于“会不会调API”,而在于“能不能把AI能力融入业务”。Spring AI,就是Java开发者抓住这波机会的桥梁。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 引言:当Java遇见AI
  • 第一部分:Spring AI是什么
    • 1.1 核心定位
    • 1.2 支持的能力矩阵
  • 第二部分:三步集成——让AI能力触手可及
    • 第一步:添加依赖
    • 第二步:配置凭证
    • 第三步:编写调用代码
  • 第三部分:核心能力深度解析
    • 3.1 ChatClient:AI交互的首选接口
    • 3.2 Advisor:拦截器让AI应用更智能
    • 3.3 Tool Calling:让AI真正“动手做事”
    • 3.4 RAG与向量存储
  • 第四部分:Spring AI 2.0——Agent时代的新底座
  • 结语:Java开发的“AI标配”
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档