7

私は春のMVCプロジェクトを次のように設定しています:

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-contexts/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-contexts/configuration-context.xml</param-value>
</context-param>

configuration-context.xmlでBeanを作成し、servlet-context.xmlでBeanを参照すると、それが見つかりません。これらは2つの異なるコンテキストとして作成されていますか?なぜこれが起こるのですか/一般的にこのように機能しますか?

4

2 に答える 2

6

はい、互いに積み重ねられた 2 つのコンテキストがあります (親コンテキストと子コンテキスト)。

DispatcherServlet ( servlet-context.xml) の Bean は ContextLoaderListener ( configuration-context.xml) の Bean にアクセスできますが、その逆はできません。

したがって、基本的なものを に入れ、configuration-context.xmlWeb 関連を に一度入れservlet-context.xmlます。

@このスタック オーバーフローの質問も参照してください: ContextLoaderListener or not?

于 2012-03-02T10:12:35.320 に答える