webプロファイルとSpring詳細


もっと読む
web.xmlでcontentConfigLocationパラメータを定義します.Springはこのパラメータを使ってカンマ区切りのファイルを全部ロードします.xmlファイル、Springは標準的にweb-INFの下のaplication Controtext.xmlファイルをロードします.

     contentConfigLocation
     classpath*:config/applicationContext.xml,classpath*:config/applicationContext-shiro.xml
     
    contencConfigLocationパラメータはSpringにロードするプロファイルを定義しています.ロードの原理は以下の通りです.
SpingでServletContentListenerを提供する1つの実装クラスのcontent Loader Listenerは、Listenerとして使用することができます.読み込むプロファイルが1つだけで、appication Content.xmlという名前の場合は、ファイルに以下のコードを入れるだけでいいです.

  org.springframework.web.context.ContextLoaderListener
 読み込むプロファイルが複数ある場合は、確定ファイル名を使用する必要がありますが、content LoaderListenerが読み込む際に、content ConfigLocationというパラメータを検索しますので、定義された名前の場合はcontent ConfigLocationを使用します.
複数のプロファイルがあります.以下のように構成されています.
  
    contextConfigLocation
    
		classpath*:config/applicationContext.xml,classpath*:config/applicationContext-shiro.xml
		
  
  
    webAppRootKey
    EPMAS.webapp.root
  
  
    log4jConfigLocation
    /WEB-INF/log4j.properties
  
  
    org.springframework.web.util.Log4jConfigListener
  
  
    org.springframework.web.context.ContextLoaderListener
  
 contentConfigLocationパラメータで指定されたプロファイルがないと、Springは自動的にaplication Contront.xmlプロファイルを検索します.contentConfigLocationパラメータで指定されたプロファイルが設定されている場合、このパラメータは文字列を指定し、Springのcontent LoaderListenerはこの文字列を複数の構成ファイル、カンマ、スペースに分解し、セパレータとして使用することができます.contentConfigLocationパラメータが設定ファイルに指定されていなくても、appliation Contront.xmlという名前のプロファイルがないと、Springが設定ファイルをロードできなくなり、またはappication Controntrontを作成するという例が異常になります.
       注意:contentLoader Listenerクラスを使用して、プロファイルのロードはServlet 2.4および以上の仕様Servlet容器に適用されます.
contentLoader Servletクラスに基づいてSpringプロファイルのロードを実現することは、servlet 2.3以下の仕様のservlet容器に適用できる. 

    contextConfigLocation
    
			classpath*:config/applicationContext*.xml
		
  

   context
     
        org.springframework.web.context.ContextLoaderServlet
     
1
 Springは特殊なServlletクラスを提供しています.このServletは起動時に、WEB-INFの下のappration Comptext.xmlファイルを自動的に検索します.もちろん、Contect Loader Servletをアプリケーションに従って起動させるために、このServletをload-on-startupのServleto load-on-startupの値より小さいのが適当です.Application Contectが優先的に作成されることを保証するためです. 
servlet容器の起動時にコンポーネントをロードする順序から見て、ListenerコンポーネントはServletコンポーネントより優先されます.Servlet方式に基づくローディングスキームは、主にServlet 2.3および以下の仕様に対応するServlet容器のためである.Tomcatを例にとると、Tomcat 5.xはすでにServlet 2.4仕様をサポートしているので、Listener方式に基づいてSpring容器を起動するのが主流です.