59

Spring MVC のドキュメントを読んでいますが、init パラメータについて質問があります。問題があればSpring 3.2を使用しています。contextConfigLocation と名前空間の違いは何ですか? contextConfigLocation は、コンテキスト クラスが XML 定義を見つけることができるフォルダーを指定するためだけのもので、namespace 属性はファイル名を指定するためのものですか?

<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</param-value>
        </init-param>
        <init-param>
            <param-name>namespace</param-name>
            <param-value>application-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

これは正しいです?/WEB-INF/application-context.xml を使用する必要がありますか? また、パスを指定する必要がありますか?

4

3 に答える 3

4

LuckyLukeの回答には多くの有用な情報があると思いますが、質問には答えていません. 特に、「namespace」パラメータと「contextConfigLocation」パラメータはどのように連携しますか?

具体的な答えを見つけることができた唯一の場所は、ソース コードです。

  • namespaceパラメーターは、デフォルトのコンテキスト構成の場所を構築するために使用されるカスタム名前空間を設定します
  • contextConfigLocationパラメーターは、名前空間から構築されたデフォルトの場所に依存する代わりに、コンテキスト構成の場所を明示的に設定します
于 2013-08-14T20:05:12.230 に答える
3

contextConfigLocation と名前空間の違いは何ですか? contextConfigLocation は、Spring 構成ファイルのパスを指定するために使用されます。つまり、それらは初期化されます。namespace は、Spring MVC の DispatcherServlet のパスと名前を指定するために使用されます。デフォルトは です[Dispatcher_name]-servlet.xml。例を次に示します。

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>namespace</param-name>
        <param-value>config/spring-mvc</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

Spring は、mvc config として使用するファイルを のパスで検索します/WEB-INF/config/spring-mvc.xml
contextConfigLocation は、コンテキスト クラスが XML 定義を見つけることができるフォルダーを指定するためだけのものですか?

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/config/app-*.xml</param-value>
</context-param>

上記のコードは、Spring を起動するアプリケーションが、名前が 'app-' で始まり '.xml' で終わるすべてのファイルを WEB-INF/config ディレクトリにロードすることを示しています。

/WEB-INF/application-context.xml を使用する必要がありますか? また、パスを指定する必要がありますか?
上記のすべての例から、Spring を構成するときはフルパスと汎用ファイル名を指定する必要があり、SpringMVC のみの場合はパス (ディレクトリにある場合は WEB-INF ディレクトリを含めない) と名前を指定する必要があることがわかります。 (拡張子は含まれません)。
お役に立てれば幸いです:)

于 2013-04-04T18:45:43.477 に答える