使用 Spring AI 1.0.0-SNAPSHOT:重要变更与更新

工程 | Mark Pollack | 2025年3月25日 | ...

使用 Spring AI 1.0.0-SNAPSHOT:重要变更与更新

Spring AI 1.0.0-SNAPSHOT 引入了对 artifact ID、依赖管理和自动配置的几项重要变更。本博客文章概述了这些变更,并提供了如何更新项目的指导。

最显著的变更是 Spring AI 启动器 artifact 的命名模式

  • 模型启动器:spring-ai-{model}-spring-boot-starterspring-ai-starter-model-{model}
  • 向量存储启动器:spring-ai-{store}-store-spring-boot-starterspring-ai-starter-vector-store-{store}
  • MCP启动器:spring-ai-mcp-{type}-spring-boot-starterspring-ai-starter-mcp-{type}

此外,您还需要添加快照仓库并更新您的依赖管理配置。

有两种方法可以将您的项目更新到 Spring AI 1.0.0-SNAPSHOT:使用 AI 工具进行自动更新手动更新。自动方法利用 Claude Code 快速转换您的项目,而手动方法为那些喜欢直接进行更改的用户提供了分步说明。

使用 Claude Code 进行自动更新

对于那些喜欢自动化方法的人,您可以使用 Claude Code CLI 工具 和提供的提示来自动将您的项目升级到 1.0.0-SNAPSHOT。这种方法可以节省时间并减少升级多个项目或复杂代码库时的错误。有关更多详细信息,请参阅升级说明中的 使用 AI 自动化升级 部分。

在这里,我们将仅以屏幕快照的形式展示 Claude Code CLI 工具将执行的步骤。

粘贴提示。

Pasting a prompt in Claude

更新 BOM 版本。

Updating BOM version in Claude

添加仓库。

Adding a repository in Claude

更新启动器。

Updating a starter in Claude

全部完成!

Task completion in Claude

手动更新

添加快照仓库

要使用 1.0.0-SNAPSHOT 版本,您需要将快照仓库添加到您的构建文件中。Central Sonatype Snapshots 仓库 (https://central.sonatype.com/repository/maven-snapshots/) 的依赖项特别需要用于获取 MCP Java SDK 的快照依赖项。

Maven

<repositories>
  <repository>
    <id>spring-snapshots</id>
    <name>Spring Snapshots</name>
    <url>https://repo.spring.io/snapshot</url>
    <releases>
      <enabled>false</enabled>
    </releases>
  </repository>
  <repository>
    <name>Central Portal Snapshots</name>
    <id>central-portal-snapshots</id>
    <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    <releases>
      <enabled>false</enabled>
    </releases>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
  </repository>
</repositories>

Gradle

repositories {
  mavenCentral()
  maven { url 'https://repo.spring.io/snapshot' }
  maven {
    name = 'Central Portal Snapshots'
    url = 'https://central.sonatype.com/repository/maven-snapshots/'
  }  
}

更新依赖管理

在您的构建配置中,将 Spring AI BOM 版本更新为 1.0.0-SNAPSHOT

Maven

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

Gradle

dependencies {
  implementation platform("org.springframework.ai:spring-ai-bom:1.0.0-SNAPSHOT")
  // Add specific Spring AI dependencies here
}

Spring AI 构件 ID 的更改

1.0.0-SNAPSHOT 中 Spring AI 启动器构件的命名模式已更改。您需要根据以下模式更新您的依赖项。

  • 模型启动器:spring-ai-{model}-spring-boot-starterspring-ai-starter-model-{model}
  • 向量存储启动器:spring-ai-{store}-store-spring-boot-starterspring-ai-starter-vector-store-{store}
  • MCP启动器:spring-ai-mcp-{type}-spring-boot-starterspring-ai-starter-mcp-{type}

示例

之前

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

之后

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>

Spring AI 自动配置构件的更改

Spring AI 自动配置已从单个整体构件更改为每个模型、向量存储和其他组件的独立自动配置构件。此更改是为了尽量减少不同版本的依赖库(如 Google Protocol Buffers、Google RPC 等)之间冲突的影响。

通过将自动配置分离到特定组件的构件中,您可以避免引入不必要的依赖项,并降低应用程序中版本冲突的风险。

原始的整体构件不再可用。

<!-- NO LONGER AVAILABLE -->
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-spring-boot-autoconfigure</artifactId>
    <version>${project.version}</version>
</dependency>

取而代之的是,每个组件现在都有自己的自动配置构件,遵循以下模式:

  • 模型自动配置:spring-ai-autoconfigure-model-{model}
  • 向量存储自动配置:spring-ai-autoconfigure-vector-store-{store}
  • MCP 自动配置:spring-ai-autoconfigure-mcp-{type}

在大多数情况下,您无需显式添加这些自动配置依赖项。当使用相应的启动器依赖项时,它们会通过传递方式包含进来。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有