Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导-抛出错误并根据某些条件停止应用程序启动_Java_Spring_Spring Boot - Fatal编程技术网

Java Spring引导-抛出错误并根据某些条件停止应用程序启动

Java Spring引导-抛出错误并根据某些条件停止应用程序启动,java,spring,spring-boot,Java,Spring,Spring Boot,我正在开发一个应用程序,在bean的post-construct方法中,我添加了一些逻辑来创建一个对象。现在,我想做的是,如果出现异常并且对象的创建有一些错误,那么不要让应用程序启动。是的,我可以看到控制台启动时抛出异常,如果对象的构造有任何问题,但我希望有更好的方法来通知我对象的构造失败,还有什么比应用程序无法启动更好的标准呢 非常感谢您的帮助 先谢谢你 对于此类需求,您可以查找FailureAnalyzer,如果应用程序启动失败,将提供附加信息。如果在应用程序启动期间引发任何异常,将按顺序调

我正在开发一个应用程序,在bean的post-construct方法中,我添加了一些逻辑来创建一个对象。现在,我想做的是,如果出现异常并且对象的创建有一些错误,那么不要让应用程序启动。是的,我可以看到控制台启动时抛出异常,如果对象的构造有任何问题,但我希望有更好的方法来通知我对象的构造失败,还有什么比应用程序无法启动更好的标准呢

非常感谢您的帮助


先谢谢你

对于此类需求,您可以查找
FailureAnalyzer
,如果应用程序启动失败,将提供附加信息。如果在应用程序启动期间引发任何异常,将按顺序调用所有FailureAnalyzer类。如果任何FailureAnalyzer类返回
FailureAnalysis
对象,则异常不会传播到其他FailureAnalysis类

请确保在
resource/META-INF/spring.factories
文件中注册故障分析类

@Component
public class SomeObject {

  @PostConstruct
  public void init() throws Exception {
    throw new Exception("SomeObject init threw exception");
  }
}

public class ObjConstructionFailureAnalyzer extends 
                     AbstractFailureAnalyzer<BeanCreationException> {

  @Override
  protected FailureAnalysis analyze(Throwable rootFailure, 
                        BeanCreationException cause) {
    System.out.println("\n===>ObjConstructionFailureAnalyzer::analyze()\n");
    String desciption = "Object creation failed, [Reason]: " + 
                                                     cause.getMessage();
    String action = "Please handle exceptions in your init methods";
    return new FailureAnalysis(desciption, action, cause);
  }
}
异常堆栈跟踪

=>ObjConstructionFailureAnalyzer::analyze()

2018-02-21 10:16:59.552错误9500---[main] o、 s.b.d.记录故障分析报告员:

***************************应用程序无法启动


说明:

对象创建失败,[原因]:创建名为的bean时出错 “someObject”:调用init方法失败;嵌套异常是 java.lang.Exception:SomeObject init引发异常

行动:

请在init方法中处理异常

您还可以访问以获取代码示例

org.springframework.boot.diagnostics.FailureAnalyzer=examples.stackoverflow.ObjConstructionFailureAnalyzer