springboot中自定义退出码

在sprintboot中,因为是大多数情况下,用application的方式去运行的,那么当程序退出的时候,其实是有个exitcode的,正常退出的时候,exitcode为0,否则为1,某些情况下,是可以自定义exitcode,可以用下面的方法:

 

@SpringBootApplication
public class SampleApplication implements ExitCodeGenerator {
  
    public static void main(String[] args) {
        System.exit(SpringApplication
          .exit(SpringApplication.run(SampleApplication.class, args)));
    }
   
    @Override
    public int getExitCode() {
        return 25;
    }
}

  这里只需要实现ExitCodeGenerator就可以了,重写getExitCode()方法,返回自定义码。

而且我们可以监听退出的事件:
 

@Bean
SampleEventListener sampleEventListener() {
    return new SampleEventListener();
}
  
private static class SampleEventListener {
  
    @EventListener
    public void exitEvent(ExitCodeEvent event) {
        LOG.info("Application Exit code: {}", event.getExitCode());
    }
}

还可以监听发生何种异常的时候,就使用什么样的退出码进行退出,比如:
 

@Bean
ExitCodeExceptionMapper exitCodeToexceptionMapper() {
    return exception -> {
         
        if (exception.getCause() instanceof NumberFormatException) {
            return 34;
        }
        if (exception.getCause() instanceof CustomTypeException) {
            return 45;
        }
        ...
        return 1;
    };
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值