springIOC源码接口分析(十一):ConfigurableApplicationContext

一 实现接口

关系图:

ConfigurableApplicationContext接口实现了三个接口,ApplicationContext, Lifecycle, Closeable,

ApplicationContext接口详细分析: https://www.cnblogs.com/houzheng/p/11838868.html

这里主要说一下另外两个接口:

1 Lifecycle

Lifecycle接口是启动/停止Bean的生命周期控制方法的通用接口,定义了三个方法:

public interface Lifecycle {
    /**
     * 启动bean*/
    void start();

    /**
     * 停止bean*/
    void stop();

    /**
     * 判断Bean是否正在运行*/
    boolean isRunning();

}

2 Closeable

 是jdk里的接口,在java.io包里,只有一个close方法,实现了Closeable接口的类的对象可以被关闭,调用 close 方法关闭后可释放对象保存的资源,比如(打开文件)

public interface Closeable extends AutoCloseable {

    /**
     * 关闭此流并释放与此流关联的所有系统资源。如果已经关闭该流,则调用此方法无效
     * @throws IOException if an I/O error occurs
     */
    public void close() throws IOException;
}

Closeable又实现了AutoCloseable接口,AutoCloseable的出现是为了更好的管理资源,准确说是资源的释放,

当一个资源类实现了该接口close方法,在使用try-catch-resources语法创建的资源抛出异常后,JVM会自动调用close 方法进行资源释放,

当没有抛出异常正常退出try-block时候也会调用close方法。像数据库链接类Connection,io类InputStream或OutputStream都直接或者间接实现了该接口

二 定义方法

三 设计分析

原文地址:https://www.cnblogs.com/houzheng/p/11885299.html