【问题标题】:ConfigurableApplicationContext vs ApplicationContext可配置应用程序上下文与应用程序上下文
【发布时间】:2015-08-31 22:12:04
【问题描述】:

我学习spring框架有一段时间了。但是每当我寻找初始化和销毁​​回调时,每个示例都使用ConfigurableApplicationContext而不是ApplicationContext。谁能解释一下原因?

【问题讨论】:

    标签: spring core


    【解决方案1】:

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

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

    这里封装了配置和生命周期方法,以避免它们对 ApplicationContext 客户端代码显而易见。目前的方法应该只被启动和关闭代码使用

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

    【讨论】:

      【解决方案2】:

      ApplicationContext:这是最强大的容器,与 Bean-factory(核心容器)相比。

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

      如果你实现了以下方法,并且你的 Bean Class 扩展了ApplicationListner 接口,那么当这些方法被执行时,你的 Bean 会得到相关的事件。

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

      【讨论】:

        猜你喜欢
        • 2012-07-19
        • 2019-08-13
        • 2014-05-14
        • 2018-08-19
        • 2016-05-20
        • 2015-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多