java – 如何防止Spring Boot守护进程/服务器应用程序立即关闭/关闭?

我的 Spring Boot应用程序不是Web服务器,但它是使用自定义协议的服务器(在这种情况下使用Camel).

但是,启动后,弹簧启动会立即停止(优雅).如何防止这种情况?

我希望应用程序停止如果Ctrl C或编程.

@CompileStatic
@Configuration
class CamelConfig {

    @Bean
    CamelContextfactorybean camelContext() {
        final camelContextFactory = new CamelContextfactorybean()
        camelContextFactory.id = 'camelContext'
        camelContextFactory
    }

}

解决方法

从阿帕奇骆驼2.17,有一个更清洁的答案.引用 http://camel.apache.org/spring-boot.html

To keep the main thread blocked so that Camel stays up,either include the spring-boot-starter-web dependency,or add camel.springboot.main-run-controller=true to your application.properties or application.yml file.

您还需要以下依赖关系:

<依赖性>
<&的groupId GT; org.apache.camel< /&的groupId GT;
< artifactId的>骆驼弹簧引导起动< / artifactId的>
<版本> 2.17.0< /版本>
< /依赖性>

明确地替换< version> 2.17.0< / version>或使用骆驼BOM导入依赖关系管理信息以保持一致.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...