closeablebeanfactoryprovider.java

来自「反向的AJAX。最大的特性是我们成为反向的Ajax。DWR1.x允许你用java」· Java 代码 · 共 63 行

JAVA
63
字号
package org.directwebremoting.guice.spring;import com.google.inject.Provider;import java.io.Closeable;import java.io.IOException;import org.directwebremoting.util.Logger;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.DisposableBean;/** * Lazily creates a singleton BeanFactory and, when {@code close()} is  * called, destroys it if it exists and is a {@code DisposableBean}. */class CloseableBeanFactoryProvider implements Closeable, Provider<BeanFactory> {        CloseableBeanFactoryProvider(BeanFactoryLoader loader)    {        this.loader = loader;    }        public synchronized BeanFactory get() {        if (beanFactory == null)        {            beanFactory = loader.loadBeanFactory();        }        return beanFactory;    }        public synchronized void close() throws IOException     {        if (beanFactory != null && beanFactory instanceof DisposableBean)        {            try             {                ((DisposableBean) beanFactory).destroy();                log.info("Destroyed BeanFactory from Guice provider.");            }             catch (IOException e)             {                log.info("Caught IO exception destroying BeanFactory: " + e);                throw e;            }             catch (Exception e)             {                log.info("Unexpected exception while destroying BeanFactory: " + e);                throw new RuntimeException(e);            }        }    }        private final BeanFactoryLoader loader;        /* @GuardedBy("this") */ private BeanFactory beanFactory;    /**     * The log stream     */    private static final Logger log = Logger.getLogger(CloseableBeanFactoryProvider.class);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?