Spring Boot非Web項目運行的方法
有時候一些項目并不需要提供 Web 服務(wù),例如跑定時任務(wù)的項目,如果都按照 Web 項目啟動未免畫蛇添足浪費資源
為了達到非 Web 運行的效果,首先調(diào)整 Maven 依賴,不再依賴 spring-boot-starter-web,轉(zhuǎn)而依賴最基礎(chǔ)的 spring-boot-starter:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies>
此時按照原先的方式啟動 SpringBootApplication 會發(fā)現(xiàn)啟動加載完之后會立即退出,這時需要做點工作讓主線程阻塞讓程序不退出:
@SpringBootApplication public class SampleApplication implements CommandLineRunner { public static void main(String[] args) throws Exception { SpringApplication.run(SampleApplication.class, args); } @Override public void run(String... args) throws Exception { Thread.currentThread().join(); } }
這里利用了 SpringBoot 提供的 CommandLineRunner 特性,這個名字比較有欺騙性,實際效果如下:
SpringBoot 應(yīng)用程序在啟動后,會遍歷 CommandLineRunner 接口的實例并運行它們的 run 方法。也可以利用 @Order 注解(或者實現(xiàn)Order接口)來規(guī)定所有 CommandLineRunner 實例的運行順序
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
相關(guān)文章
最新SpringCloud?Stream消息驅(qū)動講解
SpringCloud Stream 是一個構(gòu)建消息驅(qū)動微服務(wù)的框架,通過 SpringCloud Stream 連接消息中間件,以實現(xiàn)消息事件驅(qū)動,這篇文章主要介紹了SpringCloud?Stream消息驅(qū)動,需要的朋友可以參考下2022-11-11計算Java數(shù)組長度函數(shù)的方法以及代碼分析
在本篇內(nèi)容里,小編給大家整理了關(guān)于計算Java數(shù)組長度函數(shù)的方法以及代碼分析內(nèi)容,有興趣的朋友么可以學(xué)習(xí)參考下。2022-11-11詳解IntelliJ IDEA創(chuàng)建spark項目的兩種方式
這篇文章主要介紹了詳解IntelliJ IDEA創(chuàng)建spark項目的兩種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01Feign如何使用protobuf的類作為參數(shù)調(diào)用
這篇文章主要介紹了Feign如何使用protobuf的類作為參數(shù)調(diào)用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03