【问题标题】:Singleton resources shared by several MVC controllers in JavaJava中多个MVC控制器共享的单例资源
【发布时间】:2011-09-29 09:58:04
【问题描述】:

有没有办法让多个控制器使用单例资源?

我们有 2 个 servlet,每个都有自己的应用程序上下文:one-servlet.xml & two-servlet.xml 和 lib-context.xml 以及单例 bean“util”。

现在,如果我们将 lib-context.xml 导入上述 2 个 servlet 上下文中的每一个,spring 将为每个 servlet 创建一个单独的应用程序上下文,我们最终将得到 2 个单例对象。

有没有办法配置应用程序只创建一个单例对象?

【问题讨论】:

    标签: java model-view-controller servlets spring-mvc singleton


    【解决方案1】:

    是的。在您的web.xml 中,使用ContextLoaderListener 加载lib-context.xml,而不是使用DispatcherServlet 加载它。

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:/lib-context.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    

    您可以从特定于 servlet 的应用上下文配置文件中删除导入。

    所有DispatcherServlets 不仅会看到上面共享的lib-context.xml,还会看到他们自己加载的任何上下文。

    (您可能需要调整我给出的param-value 示例。该路径只是一个示例。)

    【讨论】:

      猜你喜欢
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 2011-12-19
      相关资源
      最近更新 更多