Spring学習ノート(四)--springプロファイルschema制約


大神の人工知能のチュートリアルを強くお勧めします.http://www.captainbed.net/zhanghan
関連概念
    スプリングのプロファイルを使用する場合、新しいプロファイルを追加するには、対応する制約を追加する必要があります.なぜこれらの制約があるのか、これらの制約が何をしているのかは検討されていません.Springは起動時にxmlドキュメントを検証する必要があります.制約の役割は、プロファイルのxmlドキュメント構文の正確性を検証することです.
   プロジェクト内のspringプロファイル制約の1つ:
 



   XMLドキュメントのschema制約は、ドキュメントの構造、コンテンツおよび構文、要素および属性などを定義します.schemaには、次のような内容が含まれます.
 
   1.XMLプロファイル内のすべてのラベルと属性を定義するにはschemaが必要です.
   2.すべてのschemaにはidが必要です.XMLプロファイルではnamespaceと呼ばれています.その値はURIで、通常はこのXMLのxsdファイルのアドレスです.   3.schema制約を導入し、属性xmlnsを使用します.属性値はschemaファイルに対応するネーミングスペースnamespaceです.
   4.導入したschemaがw 3 c組織で定義されていない場合は、schemaファイルの場所を指定する必要があります.schemaファイルの場所はschemaLocationによって指定されます.
   5.複数のschemaを導入するには別名、xmlns:aliasを使用する必要があります.
プロファイルの解析:
   1.beans:1つ以上のbeanを含むプロファイル全体のルートノード
   2.:xmlns:context="http://www.springframework.org/schema/context「基本的なネーミングスペース
  3.xsi:schemaLocation:ネーミングスペースとモード位置を関連付け、対応するxsdファイルへのxml namespaceのマッピングを提供するので、xsi:schemaLocationの後ろに配置された文字列はペアになります.
   4.別名を使用した複数のschemaファイルのインポート
Spring xmlのチェック方法
    Springは起動時にxsdファイルをロードしてxmlファイルを検証する必要があります.ネットワークが切れた場合、プロジェクトが起動できない可能性があります.このような状況を防止するためにspringは、xsdファイルをデフォルトでローカルからロードするメカニズムを提供します.
    現在、私たちのプロジェクトで使用されているspringバージョンは5.0.2.RELEASEバージョンで、spring-context:5.0.2.RELEASE.jarを開き、その下のMETA-INFフォルダを開きます.この下には2つの重要なファイルがあります.spring.handlersとspring.schemas
 
     spring.handlers
 
http\://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler
http\://www.springframework.org/schema/jee=org.springframework.ejb.config.JeeNamespaceHandler
http\://www.springframework.org/schema/lang=org.springframework.scripting.config.LangNamespaceHandler
http\://www.springframework.org/schema/task=org.springframework.scheduling.config.TaskNamespaceHandler
http\://www.springframework.org/schema/cache=org.springframework.cache.config.CacheNamespaceHandler

  最初の行を例に挙げると、http://www.springframework.org/schema/contextのschemaが必要な場合、org.springframework.config.ContextNamespaceHandler解析が使用されます.
 
   Spring.schemas:バージョンとローカルxsdのマッピングを行いました
   
http\://www.springframework.org/schema/context/spring-context-2.5.xsd=org/springframework/context/config/spring-context.xsd
http\://www.springframework.org/schema/context/spring-context-3.0.xsd=org/springframework/context/config/spring-context.xsd
http\://www.springframework.org/schema/context/spring-context-3.1.xsd=org/springframework/context/config/spring-context.xsd
http\://www.springframework.org/schema/context/spring-context-3.2.xsd=org/springframework/context/config/spring-context.xsd
http\://www.springframework.org/schema/context/spring-context-4.0.xsd=org/springframework/context/config/spring-context.xsd
http\://www.springframework.org/schema/context/spring-context-4.1.xsd=org/springframework/context/config/spring-context.xsd
http\://www.springframework.org/schema/context/spring-context-4.2.xsd=org/springframework/context/config/spring-context.xsd
http\://www.springframework.org/schema/context/spring-context-4.3.xsd=org/springframework/context/config/spring-context.xsd
http\://www.springframework.org/schema/context/spring-context.xsd=org/springframework/context/config/spring-context.xsd
http\://www.springframework.org/schema/jee/spring-jee-2.0.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/jee/spring-jee-2.5.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/jee/spring-jee-3.0.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/jee/spring-jee-3.1.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/jee/spring-jee-3.2.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/jee/spring-jee-4.0.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/jee/spring-jee-4.1.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/jee/spring-jee-4.2.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/jee/spring-jee-4.3.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/jee/spring-jee.xsd=org/springframework/ejb/config/spring-jee.xsd
http\://www.springframework.org/schema/lang/spring-lang-2.0.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/lang/spring-lang-2.5.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/lang/spring-lang-3.0.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/lang/spring-lang-3.1.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/lang/spring-lang-3.2.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/lang/spring-lang-4.0.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/lang/spring-lang-4.1.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/lang/spring-lang-4.2.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/lang/spring-lang-4.3.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/lang/spring-lang.xsd=org/springframework/scripting/config/spring-lang.xsd
http\://www.springframework.org/schema/task/spring-task-3.0.xsd=org/springframework/scheduling/config/spring-task.xsd
http\://www.springframework.org/schema/task/spring-task-3.1.xsd=org/springframework/scheduling/config/spring-task.xsd
http\://www.springframework.org/schema/task/spring-task-3.2.xsd=org/springframework/scheduling/config/spring-task.xsd
http\://www.springframework.org/schema/task/spring-task-4.0.xsd=org/springframework/scheduling/config/spring-task.xsd
http\://www.springframework.org/schema/task/spring-task-4.1.xsd=org/springframework/scheduling/config/spring-task.xsd
http\://www.springframework.org/schema/task/spring-task-4.2.xsd=org/springframework/scheduling/config/spring-task.xsd
http\://www.springframework.org/schema/task/spring-task-4.3.xsd=org/springframework/scheduling/config/spring-task.xsd
http\://www.springframework.org/schema/task/spring-task.xsd=org/springframework/scheduling/config/spring-task.xsd
http\://www.springframework.org/schema/cache/spring-cache-3.1.xsd=org/springframework/cache/config/spring-cache.xsd
http\://www.springframework.org/schema/cache/spring-cache-3.2.xsd=org/springframework/cache/config/spring-cache.xsd
http\://www.springframework.org/schema/cache/spring-cache-4.0.xsd=org/springframework/cache/config/spring-cache.xsd
http\://www.springframework.org/schema/cache/spring-cache-4.1.xsd=org/springframework/cache/config/spring-cache.xsd
http\://www.springframework.org/schema/cache/spring-cache-4.2.xsd=org/springframework/cache/config/spring-cache.xsd
http\://www.springframework.org/schema/cache/spring-cache-4.3.xsd=org/springframework/cache/config/spring-cache.xsd
http\://www.springframework.org/schema/cache/spring-cache.xsd=org/springframework/cache/config/spring-cache.xsd

    http://www.springframework.org/schema/context/spring-context-2.5.xsdが必要な場合は、ローカルorg/springframework/context/config/ディレクトリの下でspring-context.xsdを見つけることができます.springはxsdファイルをローカルに配置し、spring.schemasでマッピングを行い、xsdファイルをローカルから優先的にロードします.だから、私たちがネットワークを切断したときと同じように起動に成功したのは、xsdがネットワークを歩くのではなくローカルにロードされているからです.
    なぜ拘束を書くのかを知ってから、springを使うのは本当に別の感じですね.