1

Spring Dispatcher Servletは、事前定義されたXML構成ファイルなしでデフォルトのBeanをどのように作成しますか。(私は注釈について話していません)。

デフォルトを指定しない場合:

1)ハンドラーマッピングオブジェクト2)マルチパートリゾルバー3)テーマリゾルバーなど... XML構成ファイルで、SpringはこれらのBeanを自動的に作成します。

これらのBeanの明示的な宣言がどこにもない場合、SpringはこれらのBeanをどのように作成しますか?そして、作成されると、これらのデフォルトのBeanはアプリケーションコンテキストで使用できますか?つまり、コンテキストオブジェクトでgetBean()メソッドを呼び出すことで、これらのBeanを取得できますか?

4

2 に答える 2

1

チェックアウトDispatcherServlet.initStrategies():

protected void initStrategies(ApplicationContext context) {
    initMultipartResolver(context);
    initLocaleResolver(context);
    initThemeResolver(context);
    initHandlerMappings(context);
    initHandlerAdapters(context);
    initHandlerExceptionResolvers(context);
    initRequestToViewNameTranslator(context);
    initViewResolvers(context);
}

DispatcherServlet固定名で既存の Bean を見つけようとし、デフォルトを使用するか、見つからない場合は何も使用しないことに注意してください。

1) ハンドラー マッピング オブジェクト

他のリゾルバーが構成されていない場合、リゾルバーは使用されません。

2) マルチパート リゾルバ

チェックアウトAnnotationDrivenBeanDefinitionParser.parse()- 非常に複雑です。注意してください。

3) テーマリゾルバ

FixedThemeResolver他のリゾルバーが構成されていない場合に使用されます。

Spring MVC コンテキストの起動の内部は、何らかの理由で複雑すぎるため、いじってはいけません。置き換えたいコールバックまたは Bean を指定するだけです。

于 2012-07-29T10:45:50.840 に答える