0

Spring MVCは、HandlerMapping、ViewResolverなどのデフォルトのオブジェクトを作成します。

デフォルトで作成されるこれらのBeanが構成されている構成ファイルはどこにありますか?(私は私たちが提供する設定ファイルについて話していません)。

上記のオブジェクトのデフォルトの実装を作成するためにSpringが使用するデフォルトの構成はどこに保存されていますか?

4

1 に答える 1

0

のようなものを指定すると、SpringMVCによって作成されるデフォルトのhandlerMapping、バリデーターについて質問していると想定しています<mvc:annotation-driven>

これは基本的にmvcと呼ばれるカスタムSpring名前空間であり、このカスタム名前空間はMvcNamespaceHandlerによって処理されます。このクラスのソースを見ると、これは関連するコンテンツの一部です。

    registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenBeanDefinitionParser());
    registerBeanDefinitionParser("default-servlet-handler", new DefaultServletHandlerBeanDefinitionParser());
    registerBeanDefinitionParser("interceptors", new InterceptorsBeanDefinitionParser());       
    registerBeanDefinitionParser("resources", new ResourcesBeanDefinitionParser());
    registerBeanDefinitionParser("view-controller", new ViewControllerBeanDefinitionParser());

これは基本的に、見つかったタグに基づいて一連のパーサーを登録するため、その上に名前空間のタグのAnnotationDrivenBeanDefinitionParserを登録します。annotation-drivenmvc

デフォルトが登録されるのはここです。

たとえば、handlerMappingは次のように登録されます。

    RootBeanDefinition methodMappingDef = new RootBeanDefinition(RequestMappingHandlerMapping.class);
    methodMappingDef.setSource(source);
    methodMappingDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    methodMappingDef.getPropertyValues().add("order", 0);
    String methodMappingName = parserContext.getReaderContext().registerWithGeneratedName(methodMappingDef);

同じ行に沿って、他のコンポーネントが登録されます。したがって、本質的に、構成はコードを介して異なるAnnotationDrivenBeanDefinitionParsersにあり、特定の構成ファイルにはありません。

于 2012-07-29T12:15:45.817 に答える