Java 如何';优雅地';在Spring3应用程序中处理bean初始化失败?
有时由于外部因素,我的bean无法正确初始化。例如MongoDB实例不在线。是否有一种优雅的方式来处理失败的bean初始化?下面是有问题的bean:Java 如何';优雅地';在Spring3应用程序中处理bean初始化失败?,java,spring,Java,Spring,有时由于外部因素,我的bean无法正确初始化。例如MongoDB实例不在线。是否有一种优雅的方式来处理失败的bean初始化?下面是有问题的bean: @Bean public MorphiaDataSource morphiaDataSource() { try { MorphiaDataSource bean = new MorphiaDataSource(); Mongo mongo = new Mongo(mongoHost, mongoPort);
@Bean
public MorphiaDataSource morphiaDataSource() {
try {
MorphiaDataSource bean = new MorphiaDataSource();
Mongo mongo = new Mongo(mongoHost, mongoPort);
bean.setMongo(mongo);
bean.setMorphia(new Morphia());
bean.setDatabase(mongoDatabase);
bean.setUsername(mongoUsername);
bean.setPassword(mongoPassword);
return bean;
} catch(Exception e) {
logger.error("Error creating MorphiaDataSource: " + e.getMessage());
// Tell the context it's screwed?
}
return null;
}
如果您重新抛出异常,上下文将停止加载,您的应用程序将实际上处于死机状态。或者,如果您真的希望JVM完全停止调用System.exit(1)以什么方式退出?您希望发生什么?阻止应用程序启动?