使用 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 社群所有即將舉行的活動。

檢視所有