这可能是一个相对简单的问题,我只是没有找到正确的答案,但我正在尝试使用Spring容器来配置我的IoC。我有一些额外的处理程序(它们是私有数据成员),因此我希望在运行时进行配置。有可能做到这一点吗?
现在,我让web.xml正确地加载了servlet,然而,问题是我不确定如何将这些实例连接到servlet容器,或者将从IoC容器生成的实例连接到servlet容器。
在我的web.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文件正在被解析,因为当我输入错误的东西时,我得到了几个异常。
有什么想法?有没有更好的方法来做这件事?
发布于 2010-07-07 01:58:30
我认为大多数想要做你想做的事情的人都会使用Spring MVC框架。在这种情况下,是一个Spring类,您只需实现“控制器”(而不是实际的servlet)。
也就是说,完全有可能做你想要做的事情。看看FrameworkServlet (你可以扩展它)或者DelegatingFilterPorxy (你可以用这个类写一个'DelegatingSevletProxy‘作为例子)。
发布于 2010-07-07 02:08:02
您应该将您的逻辑移出servlet,以便它们只是一个简单的包装器,用于获取对Spring应用程序上下文的引用,从上下文实例化一个bean,向其传递HTTP请求、会话和任何其他所需的内容,并告诉bean执行此工作。
考虑到您不能在servlet容器外部实例化servlet,因此它不能进行单元测试。IoC容器无法实例化它。它不会从IoC或DI中受益。
如果可以,请使用Spring MVC;您可能希望将servlet中的逻辑移动到控制器类中。
否则,看看org.springframework.web.context.ContextLoaderListener;,你可以看到Spring是如何引导自己的。
https://stackoverflow.com/questions/3188798
复制相似问题