0

Springコンテキストを標準的な方法でロードするWebアプリケーションがあります。

web.xml

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:META-INF/applicationContext.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>
             org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>

残念ながら、私のアプリケーションは「純粋な」Webアプリケーションではありません。つまり、実際のフロントエンドはなく、web.xmlリスナーを介して初期化されるAkkaリモートアクターだけがあります。私のAkkaアクター(標準POJO)はSpringコンテキストを取得する必要があるため、私の質問は、サーブレットコンテキストへの参照がないクラスからSpringコンテキストを取得するにはどうすればよいですか?

基本的に私は使用できません:

WebApplicationContextUtils.getWebApplicationContext(ctx);

...AkkaアクターにはServletContextへの参照がないためです。

ありがとう。

4

3 に答える 3

1
  • これらのPOJOがSpringBeanの場合、実装させることができますApplicationContextAware

  • @Configurableあらゆるポジョを春の豆にするために使用できます

  • スプリングBeanでない場合は、ServletContext起動時にJNDIに格納し、JNDI経由でアクセスできます。

于 2010-12-17T13:32:52.693 に答える
1

よく知られているIDを持つSpringContextActorのインスタンスを作成する独自のイニシャライザーを作成できます。その後、SpringContextで何かを行う必要があるアクターは、ActorRegistryでSpringContextActorを検索し、それにメッセージを送信できます。

于 2010-12-18T17:17:18.880 に答える
0

Web層に大きく依存するデザインについては疑問に思います。

推奨されるSpringイディオムは、Web層から呼び出されるPOJOインターフェースサービスレイヤーを持つことです。利点は、Web層が完全に削除されている場合でも、サービスレイヤーを使用できることです。

サービスレイヤーがない場合は、サービスレイヤーを追加すると、Web層やアプリサーバーなしで柔軟に使用できるようになります。

于 2010-12-17T13:40:57.340 に答える