javascript
Spring Boot退出代码–创建自定义退出代码
當(dāng)運(yùn)行Spring Boot應(yīng)用程序時(shí),一切正常,我們將獲得系統(tǒng)退出代碼0 。 對(duì)于任何未處理的異常,應(yīng)用程序?qū)⒎祷赝顺龃a1 。
我們有可能從Spring Boot應(yīng)用程序返回自定義退出代碼。 在本教程中,我們將學(xué)習(xí)如何做。
實(shí)現(xiàn)
讓我們從創(chuàng)建一個(gè)實(shí)現(xiàn)ExitCodeGenerator接口的類開始:
@SpringBootApplication public class SampleApplication implements ExitCodeGenerator {public static void main(String[] args) {System.exit(SpringApplication.exit(SpringApplication.run(SampleApplication.class, args)));}@Overridepublic int getExitCode() {return 25;} }我們重寫了getExitCode()方法以返回值25。因此,此應(yīng)用程序現(xiàn)在將以退出代碼25退出。
我們已經(jīng)用SpringApplication.exit()方法包裝了SpringApplication.run() 。
根據(jù)Spring文檔, 我們必須使用對(duì)SpringApplication.exit()方法的調(diào)用結(jié)果來調(diào)用System.exit() 。
聽
我們可以注冊(cè)一個(gè)事件監(jiān)聽器來監(jiān)聽一個(gè)ExitCodeEvent :
@Bean SampleEventListener sampleEventListener() {return new SampleEventListener(); }private static class SampleEventListener {@EventListenerpublic void exitEvent(ExitCodeEvent event) {LOG.info("Application Exit code: {}", event.getExitCode());} }當(dāng)Spring Boot找到特定于應(yīng)用程序的退出代碼時(shí),它將觸發(fā)此事件。 現(xiàn)在,在應(yīng)用程序退出時(shí),將調(diào)用exitEvent()方法。
使用
ExitCodeExceptionMapper是一個(gè)策略接口,我們可以用來提供異常類型和退出代碼之間的映射 。
@Bean ExitCodeExceptionMapper exitCodeToexceptionMapper() {return exception -> {if (exception.getCause() instanceof NumberFormatException) {return 34;}if (exception.getCause() instanceof CustomTypeException) {return 45;}...return 1;}; }現(xiàn)在,對(duì)于NumberFormatException類型的異常,我們的應(yīng)用程序?qū)⑼顺?#xff0c;退出代碼為34 ,依此類推。
結(jié)論:
在本快速教程中,我們學(xué)習(xí)了如何在Spring Boot應(yīng)用程序中返回自定義退出代碼。 我們還為ExitCodeEvent實(shí)現(xiàn)了一個(gè)事件偵聽器。
返回正確的退出代碼將有助于我們對(duì)應(yīng)用程序進(jìn)行故障排除。
翻譯自: https://www.javacodegeeks.com/2019/05/spring-boot-exit-codes-create-custom-exit-code.html
總結(jié)
以上是生活随笔為你收集整理的Spring Boot退出代码–创建自定义退出代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中标备案号查询(中标备案号)
- 下一篇: 高效的企业测试-工作流和代码质量(4/6