springboot非web项目启动

springboot 2.2.1 非web项目启动

问题

想要写一个单纯的跟redis交互的demo,但是在springboot非web项目启动完成之后,项目直接关闭,且无异常抛错
springboot非web项目启动_第1张图片

解决

在网上搜索了集中解决方案

修改webApplicationType

写在配置文件中:

spring:
  main:
    web-application-type: none

写在启动类中

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class)
                .web(WebApplicationType.NONE)
                .run(args);
    }

但配置完成之后问题并未修复,于是进入下一个尝试

CommandLineRunner

@SpringBootApplication
public class Application implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        Thread.currentThread().join();
    }
}

尝试成功
想了一下,这么写其实不就是main方法阻塞住就吗,于是开始下一个尝试

main方法死循环

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
        while (true){}
    }

}

尝试成功

原理

TODO
网上说,非web项目启动时不启动内嵌的tomcat,但是否是这个原因还待验证

你可能感兴趣的:(spring,采坑记录)