SpringBoot项目非web方式启动

1、springboot 2.0中以非web方式启动

法1:修改配置文件

spring.main.web-application-type=NONE
#是否设定web应用,none-非web,servlet-web应用, reactive-reactive程序
spring.main.web-application-type=servlet
#加载springboot banner的方式:off-关闭,console-控制台,log-日志
spring.main.banner-mode=off

法2:Java文件

@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);
}
}
}

NONE:非web

REAVTIVE:reactive程序

SERVLET:web项目

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

法1 修改配置文件

spring.main.web_environment=false

 说明

#web_environment是否是web项目
spring.main.web_environment=true
#是否加载springboot banner
spring.main.show_banner=false

 ​法2:Java文件

@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);
}
}
}

SpringBootServletInitializer

其他网址

使用jsp作为视图模板&常规部署

作用

    ​和web.xml有相同作用:部署web应用程序。

    继承SpringBootServletInitializer之后,可以使用​外部tomcat容器​,自己可设置端口号,项目名等。​不需要用外部tomcat的话不用继承​(继承了也不会被执行)。

    ​现在JavaConfig配置方式在逐步取代xml配置方式。而WebApplicationInitializer可以看做是web.xml的替代,它是一个接口。通过实现WebApplicationInitializer,在其中可以添加servlet,listener等,在加载Web项目的时候会加载这个接口实现类,从而起到web.xml相同的作用。查看SpringBootServletInitializer定义可知,它实现了WebApplicationInitializer。    

用法

public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SsmShopApplication.class);
}
}

分析

SpringBoot 中的 ServletInitializer

​常规容器下SpringBootServletInitializer如何实现web.xml作用解析​

SpringBoot--编程--非注解_spring

其他网址

​SpringBoot项目非web方式启动 - 一切随风 - ITeye博客​

springboot 设置web和非web启动_Java_u012903200的博客