1

環境変数からプロパティファイルをロードしようとしているので、試したのは次のとおりです。

<bean id="propertyPlaceholderConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>

                <value>classpath:messages/application.properties</value>
                <value>file:${My_ENV_VAR}/*.properties</value>

            </list>
        </property>

        <property name="ignoreResourceNotFound" value="true" />
        <property name="searchSystemEnvironment" value="true" />
        <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />

    </bean>

名前付きの新しい環境変数My_ENV_VAR=C:\Program Files\My Folder\props.properties がありますが、アプリケーションを停止および開始するときに変数の値が設定されていません。

更新: 要件

パスが環境変数に格納されているファイル システムの外部プロパティ ファイルから、 applicationContext.xmlの休止状態のプロパティ (url、ユーザー名、パスワード) を読み取りたいと考えています。

4

2 に答える 2

8

を使用してPropertyPlaceholderConfigurerを作成しようとしていますPropertyPlaceholderConfigurer。それは鶏が先か卵が先かという問題です、それはうまくいきません!

代わりに式言語を試してください(参照についてはこのセクションを参照してください)が、静的コンテンツと動的コンテンツを混合したいので、あなたの場合は注意が必要です。おそらくこのようなものが機能します:

<property name="locations"
  value="classpath:messages/application.properties,
  #{ T(java.lang.System).getenv('MY_ENV_VAR')}" />
  <!-- changed method name, it's getenv(), not getEnv() -->
于 2012-01-18T14:41:01.463 に答える
1

Yoはこの方法を使用する必要があります:

最初にSpring Beanを宣言します

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>             
            <value>classpath:config.properties</value>
        </list>
    </property>
</bean>

WEB-INF/classesディレクトリにファイルconfig.propertiesを作成し、これを配置します。

jboss.variable=${jboss.modules.dir}

注: JBoss 6 EAP をデプロイすると、ログに次のように表示されます。

jboss.modules.dir = C:\Java\jee-container\jboss-eap-6.1\modules

アプリケーションコンテキストファイルで変数を使用します。

<bean id="nameOfBean"
    class="com.moeandjava.pusku.MySpringBean">
    <property name="path" value="${jboss.variable}" />
</bean>

私の悪い英語でごめんなさい

于 2013-08-19T20:19:14.723 に答える