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