25

Spring Bean でメソッドを呼び出す単純なサーブレットを JBoss で作成したいと考えています。目的は、ユーザーが URL にアクセスして内部ジョブを開始できるようにすることです。

サーブレットで Spring Bean への参照を取得する最も簡単な方法は何ですか?

JBoss Web サービスでは、@Resource アノテーションを使用して WebServiceContext をサービス クラスに注入できます。プレーンなサーブレットで動作する同等のものはありますか? この特定の問題を解決するための Web サービスは、大ハンマーを使用してナッツを粉砕することです。

4

3 に答える 3

31

サーブレットは WebApplicationContextUtils を使用してアプリケーション コンテキストを取得できますが、サーブレット コードは Spring Framework に直接依存します。

もう 1 つの解決策は、アプリケーション コンテキストを構成して、Spring Bean を属性としてサーブレット コンテキストにエクスポートすることです。

<bean class="org.springframework.web.context.support.ServletContextAttributeExporter">
  <property name="attributes">
    <map>
      <entry key="jobbie" value-ref="springifiedJobbie"/>
    </map>
  </property>
</bean>

サーブレットは、次を使用してサーブレット コンテキストから Bean を取得できます。

SpringifiedJobbie jobbie = (SpringifiedJobbie) getServletContext().getAttribute("jobbie");
于 2009-01-21T23:07:51.237 に答える
8

私はそれを行う1つの方法を見つけました:

WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
SpringifiedJobbie jobbie = (SpringifiedJobbie)context.getBean("springifiedJobbie");
于 2009-01-21T22:28:38.833 に答える