1

以下の環境(dev、qa、またはprod)に基づいてプロパティコンテキストファイルを選択する必要があります。これは、のBean構成ですPropertyPlaceholderConfigurer

<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>file:**/config/handsOn-${proj.env}.properties</value>
    </property>
</bean>

では、Spring Frameworkを作成して、デプロイされている環境に基づいて適切なファイルを選択するにはどうすればよいですか?

デプロイされているホストに基づいて環境を取得できます。以下のコードを使用して、

InetAddress.getLocalHost().getHostName()

どんな助けでもありがたいです..!!

4

2 に答える 2

2

これを行うにはいくつかの方法があります。

  1. スプリング プロパティ インジェクションを確認してください。事前定義された場所にプロパティを定義し、適切なプロパティが適切なボックスに存在することを確認するだけです <util:properties location="${path.to.properties.file}"/>
  2. それをしたくない場合は、環境タイプを JVM 引数 (例: -Denv.type=PROD) などとして注入することを検討してください。その後、このプロパティを春に使用できます。その方法については、Spring の applicationContext.xml で JVM 引数を読み取る方法を参照してください。
于 2012-05-31T23:37:07.453 に答える
1

最後に、Mavenプロファイルを使用して、環境に基づいて必要な.propertiesをパッケージ化できます。以下のように、dev、qa、prodに異なるプロファイルを使用しました。

<profiles>
        <profile>
            <id>dev</id>
            <activation>
              <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>2.4</version>
                        <executions>
                            <execution>
                                <id>copy-dev-resources</id>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>copy-resources</goal>
                                </goals>
                                <configuration>
                                    <!-- this is important -->
                                    <overwrite>true</overwrite>
                                    <!-- target -->
                                    <outputDirectory>${project.basedir}/WebContent/WEB-INF/config</outputDirectory>
                                    <resources>
                                        <resource>
                                            <!-- source -->
                                            <directory>${project.basedir}/WebContent/WEB-INF/config/dev</directory>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
</profiles>
于 2012-06-04T01:25:16.450 に答える