私はいくつかの古い HTTPServlet を含むプロジェクトを持っています。Spring でサーブレットの作成/ライフサイクルを管理する方法が欲しいので、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>
次に、サーブレットの定義を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>
上記のように、サーブレット内にいくつかのインターフェースを実装し、Spring app-context.xml で上記のように Bean 定義を保持してから、web.xml でサーブレット定義を変更する必要があると思います...よくわかりませんMyServelet.java 側で心配する継承があるため、最も簡単な変更は何ですか。これは次のようになります。
class MyServlet extends MyAbstractServlet{
void doStuff(){
//YOu know...
}
}
そして MyAbstractServlet;
class MyAbstractServlet extends HttpServlet{
doPost(){
//Some post implementation here...
}
}
MyServlet を Spring でラップし、web.xml を介してインスタンス化するのではなく、そこからロードする最良の方法は何ですか?
最良の方法は、SpringsHttpRequestHandler
を使用しHttpRequestHandlerServlet
、現在のサーブレットの代わりに web.xml で を使用することだと思います。ただし、myAbstractServlet の既存の doPost() と連携するために HttpRequestHandler インターフェースを実装する方法がわかりません...