一、前言:为什么决定学习Spring AI?

作为一名长期做Java后端开发的程序员,一直以来都在深耕Spring全家桶、业务开发、微服务等传统技术栈。近几年AI技术飞速发展,Python生态的LangChain、大模型应用开发如火如荼,但Java后端在AI工程化领域一直缺少一套官方、规范、轻量化的开发框架。而最新的Spring Boot4.0.4 + Spring AI1.1.6组合,让Java AI工程化正式进入稳定、企业可用阶段。

过去Java对接大模型,大多是手写HTTP请求、拼接JSON参数、处理各类模型差异化返回,代码冗余、耦合度极高,切换大模型需要大幅改代码,完全不适合企业级开发。

直到Spring AI正式推出,彻底解决了Java AI开发的痛点。它是Spring官方出品的AI应用开发框架,完美适配Spring Boot生态,用Java开发者最熟悉的编程模式,实现大模型快速集成、AI能力工程化落地。

为了系统掌握Java AI开发能力,跟上技术趋势,我开启了Spring AI的系统学习。本系列博客将全程记录我的真实学习过程,从零基础入门到实战落地,每一篇都是实操总结,无废话、可落地、可复现,方便自己复盘,也帮助更多Java开发者快速入门Spring AI。

二、Spring AI 核心认知(新手必懂)

2.1 什么是Spring AI?

很多新手会误解:Spring AI不是大模型,不是用来训练AI模型的框架,而是Java生态的大模型集成与AI应用开发框架

官方定位:将Spring的模块化、可移植、低耦合的设计思想,落地到AI工程化领域,为Java开发者提供一套统一、标准、开箱即用的AI开发API。

2.2 Spring AI 解决的核心问题

在没有Spring AI之前,Java对接大模型存在诸多痛点:

  • 不同大模型(智谱、OpenAI、通义千问、智谱、星火)API参数、返回格式不统一,适配成本极高

  • 需要手动处理HTTP请求、超时、重试、参数拼接,重复代码过多

  • 缺少标准化的Prompt管理、对话记忆、结构化输出、向量检索等AI常用能力

  • 无法和Spring生态无缝整合,难以适配企业级项目、微服务架构

Spring AI的核心价值:一套统一API,适配所有主流大模型,屏蔽底层模型差异,让开发者用写接口的方式,快速开发AI应用。

2.3 核心特性(入门重点了解)

  • 统一的大模型调用接口:ChatClient、ChatModel,极简代码实现智谱大模型对话交互

  • 支持主流大模型:OpenAI、通义千问、智谱AI、文心一言、Hugging Face等

  • 内置Prompt模板、对话上下文记忆、参数校验、结构化返回

  • 支持向量数据库、文档解析、RAG检索增强、Function Calling高阶能力

  • 完美兼容Spring Boot、Spring MVC、微服务架构,无缝接入现有项目

三、前置学习准备

Spring AI 基于Spring Boot开发,比较好入门,教程使用最新稳定版本的开发工具、JDK、SpringBoot、Spring AI,同时要兼顾版本的兼容性,在兼容的情况下,尽可能用最新版本。

  1. 基础环境:Eclipse Temurin JDK21(Adoptium)、IDEA 2026.1.1、Maven3.9+

  2. 技术基础:Spring Boot基础、简单的接口开发能力

  3. 资源准备:任意大模型API Key(本文接口如智谱glm-4-flash免费版)

四、环境搭建 & 首个Spring AI项目

接下来全程实操,从零搭建第一个Spring AI项目,实现基础的AI问答对话功能,所有代码可直接复制运行。

4.1 项目创建

通过 IDEA 创建项目,配置如下:

  • 项目类型:Maven

  • Java版本:21

  • Spring Boot版本:3.5.14

  • Group/Artifact:自定义即可

需要引入的核心依赖:

  • Spring Web:用于开发接口,测试调用

  • Spring AI Zhipuai Starter:适配智谱大模型核心依赖(替代原OpenAI依赖)

4.2 核心Maven依赖

若手动引入依赖,pom.xml核心配置如下(适配最新稳定版):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.5.14</version>
        <relativePath/>
    </parent>

    <groupId>demo.ai</groupId>
    <artifactId>spring-ai-demo</artifactId>
    <version>1.0.0</version>

    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.ai.version>1.1.6</spring.ai.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>${spring.ai.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-client-chat</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-zhipuai</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>

</project>

4.3 配置文件配置API Key

在application.yml中配置大模型密钥和接口地址,这是项目启动的核心配置:

spring:
  ai:
    zhipuai:
      api-key: 4281feecbxxxxxxxxxxxxxxx  # 从智谱AI获取的 api-key
      base-url: https://open.bigmodel.cn/api/paas
      chat:
        options:
          model: glm-4-flash
          temperature: 0.7  # 随机性 0-1 越低越严谨

4.4 编写核心业务代码

Spring AI 极简核心就是 ChatClient,框架自动完成装配,无需手动创建连接、处理请求参数。本次采用极简写法,直接通过控制器实现AI调用,精简代码、适合新手快速跑通demo。

编写首个AI接口控制器(极简完整版)
package demo.ai.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    private final ChatClient chatClient;
    public HelloController(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder.build();
    }

    // http://localhost:8080/hi?msg=你好
    @GetMapping("/hi")
    public String hi(@RequestParam("msg") String msg) {
        return this.chatClient.prompt()
                .user(msg)
                .call()
                .content();
    }
}

4.5 启动项目 & 测试接口

  1. 启动Spring Boot项目,无报错即环境搭建成功

  2. 浏览器/Postman访问接口:

    http://localhost:8080/hi?msg=你好
  3. 正常返回AI回答内容,代表首个Spring AI应用运行成功!

五、本次学习踩坑记录(新手必看)

本次入门学习过程中,遇到了几个新手高频问题,记录下来避免大家重复踩坑:

  • 坑1:JDK版本不匹配报错:Spring AI 最低要求JDK17,本文统一使用Eclipse Temurin 21,低版本JDK直接启动报错,必须升级对应版本

  • 坑2:API Key配置错误/为空:会报鉴权失败异常,务必核对api-key、base-url、模型名称是否匹配

  • 坑3:版本依赖不兼容:Spring Boot必须为3.5.x版本、Spring AI为1.1.6,版本错乱会导致自动装配失效、bean注入失败,严格对应本文版本即可解决

  • 坑4:智谱模型调用超时/无响应:核对智谱APIKey是否有效、模型名称是否为glm-4-flash(免费版专属),避免填写错误模型名

六、结语

Spring AI 对于Java后端开发者来说,是切入AI工程化最好、最贴合本职的技术方向。不用转行Python,不用学习复杂算法,基于现有Spring技术栈,就能快速落地AI业务功能。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐