Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.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

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 如何';优雅地';在Spring3应用程序中处理bean初始化失败?_Java_Spring - Fatal编程技术网

Java 如何';优雅地';在Spring3应用程序中处理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无法正确初始化。例如MongoDB实例不在线。是否有一种优雅的方式来处理失败的bean初始化?下面是有问题的bean:

@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)

以什么方式退出?您希望发生什么?阻止应用程序启动?