如何在SpringBoot中通过application.properties配置GCP Vision API凭证
解决SpringBoot整合GCP Vision API通过application.properties配置凭证的问题
问题根源
你的配置类中硬编码了Credentials实例,没有利用Spring Cloud GCP自动配置提供的CredentialsProvider,导致application.properties里的凭证配置无法生效。
修正步骤
1. 确保引入Spring Cloud GCP依赖
如果项目未引入相关依赖,需在构建文件中添加:
Maven(pom.xml)
<dependency> <groupId>com.google.cloud</groupId> <artifactId>spring-cloud-gcp-starter-vision</artifactId> </dependency> <dependency> <groupId>com.google.cloud</groupId> <artifactId>spring-cloud-gcp-starter</artifactId> </dependency>
Gradle(build.gradle)
implementation 'com.google.cloud:spring-cloud-gcp-starter-vision' implementation 'com.google.cloud:spring-cloud-gcp-starter'
2. 重构配置类,移除硬编码逻辑
修改VisionConfiguration类,直接注入Spring自动配置的CredentialsProvider,无需手动创建凭证实例:
@Configuration public class VisionConfiguration { @Bean public CloudVisionTemplate cloudVisionTemplate(ImageAnnotatorClient imageAnnotatorClient) { return new CloudVisionTemplate(imageAnnotatorClient); } @Bean public ImageAnnotatorClient imageAnnotatorClient(CredentialsProvider credentialsProvider) throws IOException { ImageAnnotatorSettings settings = ImageAnnotatorSettings .newBuilder() .setCredentialsProvider(credentialsProvider) .build(); return ImageAnnotatorClient.create(settings); } }
3. 修正application.properties配置
确保credentials.json放在src/main/resources目录下,配置项补充classpath:前缀以明确类路径资源:
spring.cloud.gcp.credentials.location=classpath:credentials.json
4. 验证配置生效
启动应用后,Spring会自动加载application.properties中的配置,通过CredentialsProvider获取凭证,无需再硬编码Credentials实例。
内容的提问来源于stack exchange,提问作者Abdalrazag Al-Shrufat
相关产品推荐
相关产品推荐

