代码之家  ›  专栏  ›  技术社区  ›  Chris Thompson

将springioc与web.xml中定义的servlet一起使用

  •  2
  • Chris Thompson  · 技术社区  · 14 年前

    这可能是一个相对直截了当的问题,我只是没有正确地搜索,但我正在尝试使用springioc容器来配置我的servlet。我有一些额外的处理程序(它们是私有数据成员),因此我希望在运行时进行配置。有可能这样做吗?

    现在我的web.xml已经正确地加载了servlet,但是问题是我不确定如何将这些实例连接到Spring IoC容器,或者,将从IoC容器生成的实例连接到servlet容器。

    在我的web.xml文件中,我正在设置 ContextLoaderListener

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    

    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
        /WEB-INF/beans.xml
      </param-value>
    </context-param>
    

    我也知道 beans.xml 文件正在被解析,因为当我输入的内容不正确时,出现了几个异常。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Drew Wills    14 年前

    也就是说,完全有可能做到你想要的。退房 FrameworkServlet (你可以扩展)或者 DelegatingFilterPorxy (以这个类为例,您可以编写一个“DelegatingSevletProxy”)。

        2
  •  0
  •   Ladlestein    14 年前

    您应该将您的逻辑从servlet中移出,这样它们就只是一个瘦包装器,可以获得对Spring应用程序上下文的引用,从上下文实例化bean,向它传递HTTP请求、会话、任何其他需要的内容,并告诉bean做这项工作。

    如果可以,使用springmvc;您可能希望将servlet中的逻辑移到控制器类中。

    否则,看看org.springframework.web.context.ContextLoaderListener;从那里你可以看到Spring是如何引导自己的。