在Spring Boot非Web应用中,确保应用不自动停止并能够实现优雅关闭,可以按照以下步骤进行配置和实现: 1. 确认Spring Boot非Web应用的正确配置 首先,确保你的Spring Boot项目没有依赖任何Web相关的starter,如spring-boot-starter-web。你的pom.xml文件中应该类似这样: xml <dependencies> <dependency> &...
可以在spring boot程序中 启动线程执行任务,线程不退出,则程序不退出。 @SpringBootApplicationpublicclassNothingApplication {publicstaticLogger logger = LoggerFactory.getLogger(NothingApplication.class);publicstaticvoidmain(String[] args) { logger.info("进入main..."); ConfigurableApplicationContext caContext= S...
1.首先将java工程转为maven工程,此步骤(比较繁琐,需要对大量jar包做依赖)网上很多,此处省略。。。 2.完成maven工程构建后,由于我们的项目不需要提供 Web 服务,如果按照 Web 项目启动未免画蛇添足浪费资源为了达到非 Web 运行的效果,首先调整 Maven 依赖,不再依赖 spring-boot-starter-web,转而依赖最基础的 spring...
Signal中的handle方法会在进程被kill时收到信号,对main函数的运行不会有任何影响,而使用addShutdownHook,当进程被kill的时候main函数就已经结束了,仅会运行shutdownHook中run()方法的代码。 此外addShutdownHook方法和Signal中handle方法中如果再调用System.exit,会造成死锁,使进程无法正常退出 基于上述原因,我们就可以...
等待不退出:使用一个无限循环来让应用保持运行状态。 @SpringBootApplicationpublicclassApplication{// 应用的主入口publicstaticvoidmain(String[]args){SpringApplication.run(Application.class,args);while(true){// 空循环,保持应用运行}}} 1. 2. 3. ...
假设我们现在有一个已经开发好的Spring Boot web项目,现在我们想要复用非web部分代码,并且希望能独立运行(不启用web服务的情况下)。 三,解决方案一:剥离非web部分代码 此方案是最容易想到的办法,具体就是新建springboot 非web项目,去除 spring-boot-starter-web 相关依赖和代码后调试。
再非web环境中,甚至见过以下这种写法 publicstaticvoidmain(String[]args)throwsException{SpringApplicatii...
https://www.iteye.com/blog/log-cd-2442372 1、springboot 1.x中以非web方式启动 2、springboot 2.0中以非web方式启动 -web(false)/setWebEnvironment(false) is deprecated and
SpringBoot可以使用SpringApplicationBuilder构建启动参数,通过.web可以设置非web模式,如下: @SpringBootApplication public class App implements ApplicationRunner { private static final Logger logger = …