您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)怎么在Spring Boot中啟動及退出加載項,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
如果你需要在啟動SpringApplication后執(zhí)行一些具體的代碼,你可以實現(xiàn)ApplicaitonRunner
或者CommandLineRunner
接口。兩個接口都實現(xiàn)了一個工作方式相同的run
方法,該方法僅會在SpringApplication.run(...)前執(zhí)行。
唯一不同的是實現(xiàn)CommandLineRunner
接口的run
方法參數(shù)為String
類型,而實現(xiàn)ApplicaitonRunner
的run
方法的參數(shù)則是需要ApplicationArguments
。官方文檔中有個例子供參考。
如果有多個ApplicaitonRunner
或者CommandLineRunner
接口的實現(xiàn)存在啟動順序,則可以使用org.springframework.core.Ordered
接口或者org.springframework.core.annotation.Order
注解的形式來給他們排序。
由于我沒有參數(shù)類型等的限制,所以用哪個接口都一樣,寫個跟官方不一樣的,于是代碼大概長這樣:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; @Component public class InstructionStart implements ApplicationRunner { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired private JdbcTemplate template; @Override public void run(ApplicationArguments applicationArguments) throws Exception { String increment = "0"; logger.info("初始化遞增起始值為:{}", increment); template.execute("ALTER TABLE `table` AUTO_INCREMENT = " + increment); } }
深刻的意識到腦子和屁股一樣重要。
寫完啟動項,那么再把退出也說一下:
每一個SpringApplication
都應該向JVM
注冊一個鉤子函數(shù)來確保ApplicationContext
能優(yōu)雅地關(guān)閉。使所有的標準Spring
生命周期回調(diào)(例如DisposableBean
接口和@PreDestroy
注解)都可用。
此外,如果你希望beans在調(diào)用SpringApplication.exit()
時返回特定的退出代碼,則可以實現(xiàn)org.springframework.boot.ExitCodeGenerator
接口,這些退出代碼會被傳給System.exit()
作為返回的狀態(tài)碼。官方還給了個例子,就是下面這個。
@SpringBootApplication public class ExitCodeApplication { @Bean public ExitCodeGenerator exitCodeGenerator() { return () -> 42; } public static void main(String[] args) { System.exit(SpringApplication .exit(SpringApplication.run(ExitCodeApplication.class, args))); } }
當然,ExitCodeGenerator
也可以由異常來實現(xiàn),當遇到一個這樣的異常時,Sprin Boot會返回實現(xiàn)了getExitCode()
方法的退出代碼。
springboot一種全新的編程規(guī)范,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程,SpringBoot也是一個服務于框架的框架,服務范圍是簡化配置文件。
看完上述內(nèi)容,你們對怎么在Spring Boot中啟動及退出加載項有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。