我有一个带有一些旧 HTTPServlet 的项目,我想要一种方法来管理 Spring 中 Servlet 的创建/生命周期,这样我就可以做一些事情,比如 DI 并通过 Spring/Hibernate 集成传入数据库对象。
首先,我设置了 Spring 应用程序上下文,web.xml
如下所示;
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
接下来我有我的 servlet 定义web.xml
;
<servlet>
<servlet-name>oldHttpServlet</servlet-name>
<display-name>oldHttpServlet</display-name>
<servlet-class>com.package.MyServlet</servlet-class>
</servlet>
在我的春天application-context.xml
,我想做一些 bean def 如下;
<bean id="oldHttpServlet" class="com.package.MyServlet"></bean>
我认为上面我需要在我的servlet中实现一些接口,在Spring app-context.xml中保留上面的bean定义,然后在web.xml中更改servlet定义......我不确定什么是最简单的更改,因为在 MyServelet.java 端需要担心一些继承,看起来像这样;
class MyServlet extends MyAbstractServlet{
void doStuff(){
//YOu know...
}
}
和 MyAbstractServlet;
class MyAbstractServlet extends HttpServlet{
doPost(){
//Some post implementation here...
}
}
在 Spring 中包装 MyServlet 并从那里加载而不是通过 web.xml 实例化的最佳方法是什么?
我假设最好的方法是使用 Springs HttpRequestHandler
,然后使用HttpRequestHandlerServlet
web.xml 中的 代替当前的 servlet。但是,我不确定如何实现 HttpRequestHandler 接口以使用 myAbstractServlet 中现有的 doPost() 内容...