Springboot非web项目启动(本地)

Posted OkidoGreen

tags:

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

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)
    


尝试成功
 

以上是关于Springboot非web项目启动(本地)的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot整合Mybatis非注解版

SpringBoot启动及自动装配原理

SpringBoot非web方式启动

如何利用spring boot做一个简单的web应用

SpringBoot 非web项目简单架构

spring boot web应用为啥刷新页面没用