設定ファイルの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に処理されます。