春のXML設定ファイルのラベルの解析

設定ファイルのSpringmvcの例は次のとおりです。

<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
< のxmlns = "http://www.springframework.org/schema/beans" 
    のxmlns:XSI = "http://www.w3.org/2001 / XMLスキーマ・インスタンス" のxmlns:コンテキスト= "http://www.springframework.org/schema/context" 
    のxmlns:MVC = "http://www.springframework.org/schema/mvc" のxmlns:AOP =" HTTP: //www.springframework.org/schema/aop " 
    XSI:のschemaLocation =" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0。 XSD 
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1。 
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3。
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd」> 

    < 説明> Spring構成</ 記述> 
    
    < MVC:annotation-駆動/> 

    < 豆のクラス= "org.springframework.web.servlet.view.InternalResourceViewResolver" > 
        < プロパティ= "接頭辞" = "/ WEB-INF /"  /> 
        < プロパティ= "サフィックス" =」。 JSP」 /> 
    </ >

    < コンテキスト:コンポーネント・スキャンベース・パッケージ=「org.xuan.springmvc.controller」
        使用-デフォルト・フィルタ=「falseに」> <! - ベースパッケージの場合マルチプルで「」スペーサー- > 
        < コンテキスト:インクルードをするフィルターが含まタイプ= 『注釈』
            表現= 『org.springframework.stereotype.Controllerを』 />  <! - 副走査タグは注釈を追加するために使用されます- > 
    < / コンテキスト:スキャンコンポーネント> 
</ >

ファイルがそれを解析された後、読み方をスプリンガーパ?

最初は、次のようなXML名前空間を、含まれています。

xmlns:MVC = "http://www.springframework.org/schema/mvc"

次のようなスプリング-XXX-xxxRELEASE.jar / META-INF / spring.handlersファイルに対応する、このファイルの名前空間の解決ルール、

春-ウェブ4.3.7.RELEASE.jar / META-INF / spring.handlers

ファイルspring.handlersを開きます

HTTP \://www.springframework.org/schema/mvc=org.springframework.web.servlet.config.MvcNamespaceHandler

クラスがMvcNamespaceHandler処理され、

その後、いくつかのようなこのXMLタグにあります。

< MVC:注釈駆動型/>

このタグは、MvcNamespaceHandlerで解像度の設定を対応し、内容を表示するには、ファイルを開きます。

パブリック クラス MvcNamespaceHandlerは延びNamespaceHandlerSupport { 

    @Override 
    公共 ボイドのinit(){ 
        registerBeanDefinitionParser( "アノテーション・ドリブン"、AnnotationDrivenBeanDefinitionParser())。
        registerBeanDefinitionParser( "デフォルト・サーブレット・ハンドラ"、DefaultServletHandlerBeanDefinitionParser()); 
        registerBeanDefinitionParser( "インターセプター"、InterceptorsBeanDefinitionParser()); 
        registerBeanDefinitionParser( "リソース"、 " ResourcesBeanDefinitionParser());
        registerBeanDefinitionParser(新しいViewControllerBeanDefinitionParser()); 
        registerBeanDefinitionParser(「リダイレクト-ビュー-コントローラ」、新たViewControllerBeanDefinitionParserを())。
        registerBeanDefinitionParser( "ステータス・コントローラー"、新しいViewControllerBeanDefinitionParser()); 
        registerBeanDefinitionParser( "ビューリゾルバ"、ViewResolversBeanDefinitionParser()); 
        registerBeanDefinitionParser( "タイル・コンフィギュラ"、TilesConfigurerBeanDefinitionParser()); 
        registerBeanDefinitionParser( "FreeMarkerの-構成器"、 FreeMarkerConfigurerBeanDefinitionParser());
        registerBeanDefinitionParser( "ベロシティ・コンフィギュラ"、VelocityConfigurerBeanDefinitionParser()); 
        registerBeanDefinitionParser( "グルーヴィー・コンフィギュラ"、GroovyMarkupConfigurerBeanDefinitionParser()); 
        registerBeanDefinitionParser( "スクリプト・テンプレート・コンフィギュラ"、ScriptTemplateConfigurerBeanDefinitionParser()); 
        registerBeanDefinitionParser( "CORS"、CorsBeanDefinitionParser()); 
    } 

}

タグは、アノテーション駆動時間を読んだときだから、AnnotationDrivenBeanDefinitionParserに処理されます。

おすすめ

転載: www.cnblogs.com/grasp/p/11079748.html