2017-08-22 6 views
3

この問題に関して多くのQとAsがありますが、私のプロジェクトがなぜ機能するのかの答えは見られませんでした。私はチュートリアルの後にそれを始めました。これは、web.xml内の私の春のディスパッチャサーブレットの宣言です:ディスパッチャーサーブレットの名前xml(春)

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 

その後、私はdispatcher-servlet.xmlと呼ばれる同じフォルダ内のファイルで私のサーブレット定義を持っています。しかし、web.xmlにその定義がその特定のファイルにあることを宣言しているわけではありません。 Webアプリケーションは、これが正しいファイルであることをどのように知ることができますか?

私は答えが、私のようなしでファイルの他のデフォルトの名前を見てきました。 dispatcher-servlet.xmlは、Springが知っているデフォルトの名前ですか? Spring MVCのドキュメントから

答えて

3

:DispatcherServletの初期化時に

、Spring MVCのは、あなたの 、WebアプリケーションのWEB-INFディレクトリにあるという名前のファイル [サーブレット名] -servlet.xmlを探しますそこに定義されているBeanを作成し、 スコープ内に同じ名前で定義されたBeanの定義をオーバーライドします( )。

サーブレット名が「ディスパッチャ」なので、SpringはWEB-INFフォルダのデフォルトの場所にあるdispatcher-servlet.xmlファイルを探します。

https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

+0

素晴らしい!他の人がそれを将来見ることができるように、私は質問を残す(削除しない)。 –