Spring AI 学习指南(一)零基础入门,搭建首个AI应用【学习全过程记录】
一、前言:为什么决定学习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,同时要兼顾版本的兼容性,在兼容的情况下,尽可能用最新版本。
-
基础环境:Eclipse Temurin JDK21(Adoptium)、IDEA 2026.1.1、Maven3.9+
-
技术基础:Spring Boot基础、简单的接口开发能力
-
资源准备:任意大模型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 启动项目 & 测试接口
-
启动Spring Boot项目,无报错即环境搭建成功
-
浏览器/Postman访问接口:
http://localhost:8080/hi?msg=你好
-
正常返回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业务功能。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)