关闭 Spring Boot AWS 自动配置
Posted
技术标签:
【中文标题】关闭 Spring Boot AWS 自动配置【英文标题】:Turning off Spring Boot AWS Autoconfiguration 【发布时间】:2019-07-13 05:05:51 【问题描述】:我正在使用 spring-cloud-aws-autoconfigure:2.1.0.RELEASE
连接到 AWS。但是,当应用程序在 AWS 以外的环境中运行时,我不希望进行自动配置。
我尝试使用 java 配置类按照建议的 here 和 here 以及我的 yml 文件中的 spring.autoconfigure.excludes
属性关闭自动配置,如下所示:
spring:
autoconfigure:
exclude:
- org.springframework.cloud.aws.autoconfigure.context.ContextCredentialsAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.context.ContextInstanceDataAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.context.ContextStackAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.messaging.MessagingAutoConfiguration
但这些解决方案似乎都不起作用。自动配置仍然发生,因此应用程序无法启动。
【问题讨论】:
【参考方案1】:找到了解决方案:我将它直接添加到我的主应用程序类中:
import org.springframework.cloud.aws.autoconfigure.context.*;
@SpringBootApplication
@EnableAutoConfiguration(exclude =
ContextCredentialsAutoConfiguration.class,
ContextInstanceDataAutoConfiguration.class,
ContextRegionProviderAutoConfiguration.class,
ContextResourceLoaderAutoConfiguration.class,
ContextStackAutoConfiguration.class,
MailSenderAutoConfiguration.class,
)
public class MyApplication
public static void main(String[] args)
SpringApplication.run(MyApplication.class, args);
【讨论】:
【参考方案2】:找到的解决方案:我排除了在自动配置 jar 中找到的每个类:
spring:
autoconfigure:
exclude:
- org.springframework.cloud.aws.autoconfigure.cache.ElastiCacheAutoConfiguration
- 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.ContextRegionProviderAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.context.ContextRegionProviderAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.jdbc.AmazonRdsDatabaseAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.mail.MailSenderAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.messaging.MessagingAutoConfiguration
- org.springframework.cloud.aws.autoconfigure.metrics.CloudWatchExportAutoConfiguration
【讨论】:
【参考方案3】:您是使用 Maven 还是 Gradle 来构建。如果它是 maven,那么这个问题已经有了答案
Disable Spring Cloud AWS autoconfiguration for local development
【讨论】:
以上是关于关闭 Spring Boot AWS 自动配置的主要内容,如果未能解决你的问题,请参考以下文章
spring boot banner设置关闭以及关闭特定的自动配置
在 Spring Boot 中自动生成 API 文档 [关闭]
使用 Spring Cloud Vault 在 Spring Boot 应用程序中自动更新 AWS 凭证