読み取り設定情報の春には

大規模プロジェクトは、私たちは多くの場合、一元管理の我々のシステムの構成情報を持っている、一般的には、構成情報とcfg.propertiesファイルを設定することであり、我々は、システムを初期化するときに、システムが自動的に設定cfg.propertiesを読み込みキー値(キーと値のペア)を提出した後、我々は、システムの初期設定をカスタマイズします。

  だから、通常の状況下で、我々は、使用java.util.Propertiesはつまり、Javaが所有しています。多くの場合、問題は毎回ロードされたが、我々はすべてのコーディングトラブルに手動で設定ファイルを読み込む必要があり、第二に、コードがエレガントではありませんが、多くの場合、我々は読み込みおよび格納するために、独自の特殊なクラスを作成することであり設定情報。

  春はPropertyPlaceholderConfigurerが設けられています。

  このクラスは、BeanFactoryPostProcessorのサブクラスです。(私は、次について話すことができ、理解できる理解できない、自分の母親の程度を知ってはいけません)

主要な原則はい。Springコンテナの初期化時には、初期化さビーンのxmlまたは注釈を読み込みます。初期化時間は、このPropertyPlaceholderConfigurerインターセプト豆がされ
た構成での私たちの性質に応じて交換し、$ {pnameのが}交換する時に設定されるであろう、初期化。発現を達成するために、交換作業。

原則を完全に理解した後、我々は、その実装の方法を見て。

私たちのクラスパスにcfg.propertiesを作成します。

コンテンツ#cfg.properties構成ファイル = ジェイ     
パスワード = 123

ここではSpring構成ファイルのコードは次のとおりです。

< のxmlns = "http://www.springframework.org/schema/beans" 
    のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" 
    のxsi:schemaLocationの= "のhttp:// WWW .springframework.org /スキーマ/豆http://www.springframework.org/schema/beans/spring-beans.xsd」> 

    < 豆のクラス= "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" > 
        <! - - 对于读取一个配置文件采取的方案- > 
        < プロパティ= "場所" = "クラスパス:cfg.properties" > </ プロパティ> 
        <!- 撮影した2つの以上のプロファイルを読み込むための処理プログラム- > 
        <! -
        <プロパティ名= "位置"> 
            <リスト> 
                <値>クラスパス:cfg.properties </値> 
                <値>クラスパス:cfg2.properties </ value>の
            </リスト> 
        </ property>の
        - > 
    </ > 
</ >
// 测试代码

@RunWith(。SpringJUnit4ClassRunner クラス
@ContextConfiguration( "クラスパス:applicationCtx.xml" パブリック クラスSpringCtxTst { 


    @value( "$ {ユーザー名}" プライベート文字列のuname。

    @value( "$ {パスワード}" プライベート文字列のPWD; 

    @Test 
    公共 ボイド試験(){ 
        System.out.printlnは( "ユーザー名:" + のuname)。
        System.out.println( "パスワード:" + PWD)。
    } 
}

コンソール出力

ユーザ名:ジェイの
パスワード: 123

もちろん、この目的の春のためにも、別のソリューションを提供してくれ、私たちはSpring構成ファイルに直接次のコードを記述を達成することができます

< のxmlns = "http://www.springframework.org/schema/beans" 
    のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" 
    のxmlns:コンテキスト= "のhttp:// WWW .springframework.org /スキーマ/コンテキスト" 
    のxsi:schemaLocationの=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
        のhttp:// www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd」> 
    <! - 采用这种方式简化配置文件- > 
    < コンテキスト:プロパティ-placeholder 位置= "クラスパス:cfg.properties、クラスパス:cfg2.properties" /> 

</ >

重要な注意
  PropertyPlaceholderConfigurerまたは文脈によって使用するかどうかを私たちは知っている、:プロパティ・プレースホルダーがこの方法で達成することが、私たちは、Springフレームワークを覚えておく必要がありますが、キーと値のペアの私達のプロフィールを読んで、だけでなく、JVMを読むだけでなく、システムに関する初期化情報。時々 、私たちは、次のような命名規則のキー与えられたセットを設定する必要があります

プロジェクト名グループ名機能名= 設定値
org.team.tfunction = 0001

システム構成情報との競合を最小限に抑えるために、この方法! 
  同時に、我々はまた、設定するには、以下のこの構成を使用することができ、ここで私は、システム構成情報を読んだことがないとない意味します。もし

< コンテキスト:プロパティプレースホルダ位置=「クラスパス:cfg.properties、クラスパス:cfg2.properties」システム・プロパティ・モード=「NEVER」/>

参考記事:

1. PropertyPlaceholderConfigurerの春に

おすすめ

転載: www.cnblogs.com/AlanWilliamWalker/p/11122672.html