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


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

修改webApplicationType
写在配置文件中:

spring:
  main:
    web-application-type: none

写在启动类中(同时获取applicationContext,用于获取Bean)

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


ConfigurableApplicationContext context = new SpringApplicationBuilder(ConfigMain.class)
                .web(WebApplicationType.NONE)
                .run(args);

        Client client = context.getBean(Client.class);

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

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){}
    }

}


尝试成功
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐