SpringBoot⾮Web项⽬运⾏的⽅法
有时候⼀些项⽬并不需要提供 Web 服务,例如跑定时任务的项⽬,如果都按照 Web 项⽬启动未免画蛇添⾜浪费资源
为了达到⾮ Web 运⾏的效果,⾸先调整 Maven 依赖,不再依赖 spring-boot-starter-web,转⽽依赖最基础的 spring-boot-starter:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
springboot aop此时按照原先的⽅式启动 SpringBootApplication 会发现启动加载完之后会⽴即退出,这时需要做点⼯作
让主线程阻塞让程序不退出:
@SpringBootApplication
public class SampleApplication implements CommandLineRunner {
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleApplication.class, args);
}
@Override
public void args) throws Exception {
Thread.currentThread().join();
}
}
这⾥利⽤了 SpringBoot 提供的 CommandLineRunner 特性,这个名字⽐较有欺骗性,实际效果如下:
SpringBoot 应⽤程序在启动后,会遍历 CommandLineRunner 接⼝的实例并运⾏它们的 run ⽅法。也可以利⽤
@Order 注解(或者实现Order接⼝)来规定所有 CommandLineRunner 实例的运⾏顺序
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。