可配置的应用程序上下文与应用程序上下文的区别

11
我已经学习了一段时间的Spring框架。但是每当我寻找初始化和销毁回调函数时,每个示例都使用ConfigurableApplicationContext而不是ApplicationContext。有人可以解释一下为什么吗?
2个回答

11

因为所有常见的ApplicationContext实现实际上都是ConfigurableApplicationContext。从ConfigurableApplicationContext的javadoc中提取:

SPI接口,应由大多数(如果不是全部)应用程序上下文实现。

将配置和生命周期方法封装在此处,以避免它们对ApplicationContext客户端代码显而易见。这些方法只应由启动和关闭代码使用。

这意味着当你使用一个应用程序上下文时,即从中获取bean时,你仅将其用作ApplicationContext,但当你管理其生命周期(初始化和销毁)时,你使用ConfigurableApplicationContext中的方法。


2

ApplicationContext: 这是最强大的容器,相较于Bean-factory(核心容器)而言。

ConfigurableApplicationContext: ApplicationContext容器的实现之一。此容器用于事件处理。

如果您的Bean类实现了以下方法并扩展了ApplicationListner接口,则在执行这些方法时,您的Bean将获得相关的事件。

void refresh()
void close();
void shutdown();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接