springboot:非web启动
需要运行一些调度任务,但是又不想放到web容器中运行。 见红色代码:
import java.util.concurrent.ThreadPoolExecutor; import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.core.task.AsyncTaskExecutor; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; @SpringBootApplication @EnableCaching @EnableRedisHttpSession @EnableAsync @EnableScheduling public class JspxScheduleApplication { public static void main(String[] args) { new SpringApplicationBuilder(JspxScheduleApplication.class).web(WebApplicationType.NONE).run(args); } @Bean public AsyncTaskExecutor asyncTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setThreadNamePrefix("jspt-schedule-"); executor.setMaxPoolSize(30); executor.setCorePoolSize(10); executor.setQueueCapacity(0); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy()); return executor; } }
WebApplicationType 有三个值。
NONE
- 应用程序不应作为Web应用程序运行,也不应启动嵌入式Web服务器。REACTIVE
- 应用程序应作为响应式Web应用程序运行,并应启动嵌入式响应式Web服务器。
SERVLET
- 应用程序应作为基于servlet的Web应用程序运行,并应启动嵌入式servlet Web服务器。
若是本人原创文章,请标明:本文来自博客园,作者:huiy_小溪,转载请注明原文链接:https://www.cnblogs.com/huiy/p/11834828.html。
反之,请标明原创作者,文章链接,所属平台。