spring boot启动自动关闭

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot启动自动关闭相关的知识,希望对你有一定的参考价值。

参考技术A spring boot项目启动后马上关闭了容器,日志什么也没有打印。

点击上面的Run Configuration,打开spring boot的debug日志,并重新启动。

可以看到这边启动的时候报了一个类不存在,这个是因为console项目引用了core项目,core项目没有先编译的原因。

编译core项目重新启动,问题解决。

关闭 Spring Boot AWS 自动配置

【中文标题】关闭 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启动自动关闭的主要内容,如果未能解决你的问题,请参考以下文章

springboot启动后自动关闭

spring boot banner设置关闭以及关闭特定的自动配置

关闭 Spring Boot AWS 自动配置

在 Spring Boot 中自动生成 API 文档 [关闭]

防止来自 Spring Boot 的数据库关闭命令

Spring Boot 在 AWS EC2 上自动关闭