javascript
Spring Boot退出代码–创建自定义退出代码
當運行Spring Boot應用程序時,一切正常,我們將獲得系統退出代碼0 。 對于任何未處理的異常,應用程序將返回退出代碼1 。
我們有可能從Spring Boot應用程序返回自定義退出代碼。 在本教程中,我們將學習如何做。
實現
讓我們從創建一個實現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。因此,此應用程序現在將以退出代碼25退出。
我們已經用SpringApplication.exit()方法包裝了SpringApplication.run() 。
根據Spring文檔, 我們必須使用對SpringApplication.exit()方法的調用結果來調用System.exit() 。
聽
我們可以注冊一個事件監聽器來監聽一個ExitCodeEvent :
@Bean SampleEventListener sampleEventListener() {return new SampleEventListener(); }private static class SampleEventListener {@EventListenerpublic void exitEvent(ExitCodeEvent event) {LOG.info("Application Exit code: {}", event.getExitCode());} }當Spring Boot找到特定于應用程序的退出代碼時,它將觸發此事件。 現在,在應用程序退出時,將調用exitEvent()方法。
使用
ExitCodeExceptionMapper是一個策略接口,我們可以用來提供異常類型和退出代碼之間的映射 。
@Bean ExitCodeExceptionMapper exitCodeToexceptionMapper() {return exception -> {if (exception.getCause() instanceof NumberFormatException) {return 34;}if (exception.getCause() instanceof CustomTypeException) {return 45;}...return 1;}; }現在,對于NumberFormatException類型的異常,我們的應用程序將退出,退出代碼為34 ,依此類推。
結論:
在本快速教程中,我們學習了如何在Spring Boot應用程序中返回自定義退出代碼。 我們還為ExitCodeEvent實現了一個事件偵聽器。
返回正確的退出代碼將有助于我們對應用程序進行故障排除。
翻譯自: https://www.javacodegeeks.com/2019/05/spring-boot-exit-codes-create-custom-exit-code.html
總結
以上是生活随笔為你收集整理的Spring Boot退出代码–创建自定义退出代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中标备案号查询(中标备案号)
- 下一篇: gradle idea java ssm