From cf2ebbcb2559ade0ae78b1d63b00b68656a12933 Mon Sep 17 00:00:00 2001 From: Tom Hombergs Date: Wed, 12 Jul 2017 22:43:18 +0200 Subject: [PATCH] Improve ExitCodeGenerator doc See gh-9740 --- .../main/asciidoc/spring-boot-features.adoc | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index 3ecca74b92d..cfc5363ca2d 100644 --- a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -336,7 +336,29 @@ callbacks (such as the `DisposableBean` interface, or the `@PreDestroy` annotati be used. In addition, beans may implement the `org.springframework.boot.ExitCodeGenerator` -interface if they wish to return a specific exit code when the application ends. +interface if they wish to return a specific exit code when `SpringApplication.exit()` +is called. This exit code can then be passed to `System.exit()` to pass it to the outside. + +[source,java,indent=0] +---- + @SpringBootApplication + public class ExitCodeApplication { + + public static void main(String[] args) { + System.exit(SpringApplication.exit(SpringApplication.run(ExitCodeApplication.class, args))); + } + + @Bean + public ExitCodeGenerator exitCodeGenerator(){ + return () -> 42; + } + + } +---- + +Also, the `ExitCodeGenerator` interface may be implemented by exceptions. When such an exception is +encountered, Spring Boot will return the exit code provided by the implemented `getExitCode()` method +to the outside caller.