JAVA-1098: Add code for the Spring Boot Exit Codes

This commit is contained in:
Krzysztof Woyke
2020-03-26 15:12:26 +01:00
parent 67cefb4342
commit 401f8484cb
5 changed files with 85 additions and 1 deletions

View File

@@ -0,0 +1,31 @@
package com.baeldung.exitcode.event;
import org.springframework.boot.ExitCodeEvent;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.event.EventListener;
@SpringBootApplication
public class ExitCodeEventDemoApplication {
public static void main(String[] args) {
System.exit(
SpringApplication.exit(
SpringApplication.run(ExitCodeEventDemoApplication.class, args)
)
);
}
@Bean
DemoListener demoListenerBean() {
return new DemoListener();
}
private static class DemoListener {
@EventListener
public void exitEvent(ExitCodeEvent event) {
System.out.println("Exit code: " + event.getExitCode());
}
}
}

View File

@@ -0,0 +1,31 @@
package com.baeldung.exitcode.exception;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.ExitCodeExceptionMapper;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class ExitCodeExceptionMapperDemoApplication {
public static void main(String[] args) {
SpringApplication.run(ExitCodeExceptionMapperDemoApplication.class, args);
}
@Bean
CommandLineRunner createException() {
return args -> Integer.parseInt("test");
}
@Bean
ExitCodeExceptionMapper exitCodeToExceptionMapper() {
return exception -> {
// set exit code based on the exception type
if (exception.getCause() instanceof NumberFormatException) {
return 80;
}
return 1;
};
}
}

View File

@@ -0,0 +1,22 @@
package com.baeldung.exitcode.generator;
import org.springframework.boot.ExitCodeGenerator;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ExitCodeGeneratorDemoApplication implements ExitCodeGenerator {
public static void main(String[] args) {
System.exit(
SpringApplication.exit(
SpringApplication.run(ExitCodeGeneratorDemoApplication.class, args)
)
);
}
@Override
public int getExitCode() {
return 42;
}
}