首页
/ 3步优化法:Spring AI项目中禁用Gemini和Vertex AI组件的完整指南

3步优化法:Spring AI项目中禁用Gemini和Vertex AI组件的完整指南

2026-05-03 11:31:52作者:田桥桑Industrious

在Spring AI项目开发过程中,您是否遇到过启动缓慢、内存占用过高的问题?这些现象往往与未使用的AI组件有关。本文将通过"问题诊断→解决方案→效果验证"三步法,帮助您彻底禁用Gemini和Vertex AI组件,提升项目性能。

一、问题诊断:识别隐藏的性能瓶颈

1.1 资源占用症状分析

未禁用的Gemini和Vertex AI组件会带来多重性能问题:

  • 启动延迟:自动配置类加载额外15-20个Bean
  • 内存消耗:默认引入的Google客户端库占用约80MB堆空间
  • 依赖冗余:传递引入12+个Google Cloud相关JAR包

1.2 组件识别方法

关键组件坐标

spring-ai-starter-model-vertex-ai-gemini  // Gemini聊天模型
spring-ai-starter-model-google-genai      // Google GenAI接口
spring-ai-starter-model-vertex-ai-embedding // Vertex嵌入模型
spring-ai-autoconfigure-model-vertex-ai   // 自动配置类

Maven依赖树分析

mvn dependency:tree -Dincludes=org.springframework.ai:*vertex*

1.3 多模块依赖传递路径

⚠️ 典型依赖链

spring-ai-starter → spring-ai-starter-model-google-genai 
→ spring-ai-autoconfigure-model-vertex-ai → google-cloud-aiplatform

嵌入模型API类图 图1:Spring AI嵌入模型API架构图,红色框标注为Vertex AI相关实现

二、解决方案:三种禁用策略详解

方法1:Maven依赖排除(生产环境推荐)

在主pom.xml中添加排除规则:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-vertex-ai-gemini</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-vertex-ai-embedding</artifactId>
        </exclusion>
    </exclusions>
</dependency>

方法2:配置文件禁用(开发环境适用)

在application.yml中添加:

spring:
  ai:
    vertex:
      ai:
        gemini:
          enabled: false
        embedding:
          enabled: false
    google:
      genai:
        enabled: false
    model:
      chat: none
      embedding: none

方法3:条件注解控制(高级定制)

创建自定义配置类:

@Configuration
@ConditionalOnProperty(
    name = "spring.ai.vertex.ai.enabled",
    havingValue = "false",
    matchIfMissing = true
)
public class VertexAIDisabledConfig {
    // 禁用逻辑实现
}

Spring条件注解原理@ConditionalOnProperty通过Environment抽象检查配置属性,当enabled=false时,会阻止相关@Configuration类的注册,从而避免Bean的创建。

Gradle项目配置方案

对于Gradle构建,在build.gradle中添加:

configurations {
    all {
        exclude group: 'org.springframework.ai', module: 'spring-ai-starter-model-vertex-ai-gemini'
        exclude group: 'org.springframework.ai', module: 'spring-ai-starter-model-vertex-ai-embedding'
    }
}

三、效果验证:性能优化成果检验

3.1 资源占用对比表

指标 禁用前 禁用后 优化幅度
启动时间 45秒 32秒 29%
内存占用 480MB 390MB 19%
JAR包数量 127个 103个 19%
依赖大小 185MB 105MB 43%

3.2 验证步骤

依赖排除验证

mvn dependency:list | grep vertex
# 应无输出结果

自动配置验证

java -jar target/*.jar --debug | grep VertexAI
# 应无相关Bean创建日志

3.3 自动化工具推荐

依赖冲突检测脚本

#!/bin/bash
# 检查Gemini/Vertex AI相关依赖
mvn dependency:tree | grep -E "vertex|gemini|google-genai" && \
echo "发现需要禁用的依赖" || echo "依赖已清理"

配置检查清单

检查项 状态
pom.xml排除配置
application配置
依赖树无相关组件
启动日志无相关Bean
内存占用降低

ETL数据处理流程 图2:Spring AI文档处理流水线,禁用不必要组件可提升数据处理效率

通过本文介绍的三步优化法,您已掌握识别、禁用和验证Gemini与Vertex AI组件的完整流程。在实际项目中,建议优先采用依赖排除法,并通过自动化脚本确保配置生效。记得在不同环境中测试禁用效果,以获得最佳性能提升。

项目源码:spring-ai/ 官方文档:spring-ai-docs/src/main/antora/

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
docsdocs
暂无描述
Markdown
827
5.49 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
494
518
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
786
1.58 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
803
1.14 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
973
2.29 K
kernelkernel
deepin linux kernel
C
32
16
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
482
312
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.02 K
769
cannbot-skillscannbot-skills
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Markdown
1.26 K
811
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
648
287