如何在 Spring Boot 3.3.0 中排除 AWS 自动配置类?

问题描述 投票:0回答:1

我在本地运行 Spring Boot 应用程序时遇到此异常,当我将 Spring Boot 版本升级到 3.3.0 时,我开始遇到此异常:

错误:

The following classes could not be excluded because they are not auto-configuration classes:
- org.springframework.cloud.aws.autoconfigure.context.ContextCredentialsAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.context.ContextInstanceDataAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.context.ContextRegionProviderAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.context.ContextResourceLoaderAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.context.ContextStackAutoConfiguration

示例 pom.xml:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.3.0</version>
    <relativePath/> <!-- lookup parent from repository. -->
</parent>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-aws-secrets-manager-config</artifactId>
    <version>2.2.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-aws-autoconfigure</artifactId>
    <version>2.2.5.RELEASE</version>
    <scope>compile</scope>
</dependency>

代码:

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.cloud.aws.autoconfigure.context.*;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
@EnableAutoConfiguration(exclude = {
        ContextCredentialsAutoConfiguration.class,
        ContextInstanceDataAutoConfiguration.class,
        ContextRegionProviderAutoConfiguration.class,
        ContextResourceLoaderAutoConfiguration.class,
        ContextStackAutoConfiguration.class
})
@Profile("local")
class MyClass{

}

我需要这个配置类来使应用程序不连接到AWS并在本地运行而没有任何问题。知道如何解决这个问题吗?

如果我没有上面的配置类,我会得到这个异常:

 com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain: [EnvironmentVariableCredentialsProvider: Unable to load AWS credentials 
from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and 
AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY)), 
SystemPropertiesCredentialsProvider: Unable to load AWS credentials 
from Java system properties (aws.accessKeyId and aws.secretKey)
java spring spring-boot spring-cloud spring-cloud-aws
1个回答
0
投票

Spring Cloud AWS 3.2.0 于几周前发布,与 Spring Boot 3.3.x 兼容

另外,我看到您在依赖项中使用旧项目。由于 Spring Cloud AWS 不再是 Spring Cloud 发布系列的一部分,我们已转移到 存储库

您想要将依赖项升级为:

<dependency>
        <groupId>io.awspring.cloud</groupId>
        <artifactId>spring-cloud-aws-starter</artifactId>
        <version>3.2.0</version>
</dependency>



 <dependency>
        <groupId>io.awspring.cloud</groupId>
        <artifactId>spring-cloud-aws-starter-secrets-manager</artifactId>
        <version>3.2.0</version>
 </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.