ConfigurableApplicationContext与ApplicationContext

时间:2015-06-16 07:49:56

标签: spring core

我一直在学习spring框架。但是每当我查找初始化和销毁​​回调时,每个示例都使用ConfigurableApplicationContext而不是ApplicationContext。有人可以解释原因吗?

2 个答案:

答案 0 :(得分:6)

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

SPI接口由大多数应用程序上下文实现。

这里封装了配置和生命周期方法,以避免使它们对ApplicationContext客户端代码变得明显。本方法只能由启动和关闭代码

使用

这意味着,当您使用应用程序上下文时,即从中获取bean时,您只能将其用作ApplicationContext,但是当您管理其生命周期(初始化和销毁​​)时,您使用它来自ConfigurableApplicationContext

的方法

答案 1 :(得分:0)

ApplicationContext:与Bean工厂(核心容器)相比,这是功能最强大的容器。

ConfigurableApplicationContextApplicationContext容器的一种实现。此容器用于事件处理建议。

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

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