首页 > 解决方案 > 如何在spring boot启动期间关闭应用程序

问题描述

我有一个关于启动的问题spring boot,如何在启动时关闭应用程序,例如,我有以下

application.yml

ansi:
   true

我有以下@Configuration课程:

@Configuration
class AppConfig {
   @Value('${ansi}')
   String ansi;


   @Bean
   getAnsi() {
        if(ansi.equals("true")) {
             Ansi ansiObj = new Ansi();
             ansiObj.ansi = ansi;
             return ansiObj;
        }
   }
}

class Ansi {
   String ansi;
}

在is时ansi,它继续,否则,应用程序应该关闭,我们可以在创建 bean 期间关闭应用程序吗?这是一个好习惯吗?有什么好的方法来处理这个吗?application.ymltrue

标签: javaspring-boot

解决方案


如果 bean 抛出异常,则 Spring 将不会继续,并且该过程将结束。

if(ansi.equals("true")) {
     Ansi ansiObj = new Ansi();
     ansiObj.ansi = ansi;
     return ansiObj;
}
else  {
    throw new IllegalArgumentException("reason");
}

我不能说我曾经有过它的用例,但我不会说这是必要的坏习惯。在这个有限的真假例子中,似乎有点不寻常。如果您需要对属性进行约束,例如 X < 10,那将更有意义


推荐阅读