有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Spring IoC和web中定义的servlet。xml

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

现在我有我的网络。xml正确加载servlet,然而,问题是我不确定如何将这些实例连接到Spring IoC容器,或者,将IoC容器生成的实例连接到servlet容器

在我的网上。xml文件,我正在设置ContextLoaderListener

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

以及为bean上下文配置正确的位置

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

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

想法?有更好的方法吗


共 (2) 个答案

  1. # 1 楼答案

    我想大多数想做你想做的事情的人都只是使用Spring MVC框架。在这种情况下,是一个Spring类,您只需实现“控制器”(而不是实际的servlet)

    也就是说,完全有可能做到你想要的。查看FrameworkServlet(您可以扩展它)或DelegatingFilterPorxy(您可以使用这个类作为示例编写一个“DelegatingSevletProxy”)

  2. # 2 楼答案

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

    认为不能在servlet容器之外实例化servlet,因此不能进行单元测试。IoC容器无法实例化它。它不会从国际奥委会或国际直接投资中受益

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

    否则,看看org。springframework。网状物上下文ContextLoaderListener;从那里你可以看到Spring是如何自我引导的