0

環境に基づいてロードされるプロパティ ファイルがあります。applicationContext.xml にプレースホルダーを作成しました

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:environment-${buildProfile}.properties</value>
        </list>
    </property>
</bean>

Maven を介してこのファイルをロードする別の方法があります。

プロパティ ファイルをロードするより良い方法を教えてください。これにパフォーマンスの違いはありますか?

4

1 に答える 1

1

両者には大きな違いがあります。主に、Maven でフィルターを使用してプロパティの置換を行うと、プレースホルダーが物理的に置換されます。目的の値でファイルに。したがって、デプロイされたアーティファクトには、いわば「焼き付けられた」構成があります。ただし、Spring のプロパティ プレースホルダーを使用すると、実行時にそれらのプロパティをロードできます。これにより、アーティファクトをデプロイし、実行時まで設定を遅らせることができます。それはあなたのビジネスケースに本当に依存しますが、私の個人的な好みは、Maven ビルドから単一のアーティファクトを生成したいという理由だけで、Maven フィルタリングをできるだけ避け、代わりにランタイム構成に依存することです。 、たとえば、対象とする環境では、環境ごとに異なるアーティファクトを生成する必要があります。すべての環境に 1 つのアーティファクトを使用し、各環境 (dev、qa、および production など) ごとに異なる可能性のあるランタイム ロード構成を使用すると、よりクリーンなデプロイが可能になります。

于 2013-10-22T01:22:29.053 に答える