# SpringBoot 项目非 web 方式启动

# springboot 1.x 中以非 web 方式启动

# 启动方式1

SpringApplication app = new SpringApplication(Application.class);
app.setWebEnvironment(false);// 设置ApplicationContext类型
ApplicationContext ctx = app.run(args);

# 启动方式2

@SpringBootApplication
public class Application implements ApplicationRunner{

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

    @Override
    public void run(ApplicationArguments args) throws Exception {
        while(true) {
            System.out.println("now is " + new Date().toLocaleString());
        Thread.sleep(1000);
    }
    }

}

# springboot 2.0 中以非 web 方式启动

web(false)/setWebEnvironment(false) is deprecated and instead Web-Application-Type can be used to specify

# 1. 配置实现无web环境启动

spring.main.web-application-type=NONE

# 2. 代码控制无web环境启动

@SpringBootApplication
public class Application implements ApplicationRunner{

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class)
            .web(WebApplicationType.NONE) // .REACTIVE, .SERVLET
            .bannerMode(Banner.Mode.OFF)
            .run(args);
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {
        while(true) {
            System.out.println("now is " + new Date().toLocaleString());
            Thread.sleep(1000);
        }
    }
}