0

私の war ファイルには、test.properties、dev.properties、prod.properties の 3 つのプロパティ ファイルがあります。

私のアプリケーションコンテキストには次のものがあります

<bean id="local" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="locations">
        <list><value>classpath:${env}.properties</value></list>
      </property>
      <property name="ignoreResourceNotFound" value="false" />
      <property name="ignoreUnresolvablePlaceholders" value="false" />
      <property name="searchSystemEnvironment" value="true" />
  </bean>

私は次のことをしました

  1. tomcat7/conf/web.xml に以下を設定します

    <env-entry>
    <env-entry-name>env</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>dev</env-entry-value>
    

  2. tomcat7/conf/context.xml に以下を設定します

    <Environment name="env" value="dev" type="java.lang.String" override="false"/>
    
  3. CATALINA_OPTS と JAVA_OPTS を設定する

    echo $CATALINA_OPTS  =   -Denv=dev
    echo $JAVA_OPTS  =       -Denv=dev
    

コマンド sudo /etc/init.d/tomcat7 start を使用して tomcat を起動します

これは私の変数をロードしません。私はまだ得る

Invalid bean definition with name 'local' defined in class path resource [applicationContext.xml]: Could not resolve placeholder 'env'

私は何を間違っていますか??

4

2 に答える 2

1

tomcat7/conf の catalina.properties に変数を設定することで問題を解決できました

環境 = dev

于 2012-08-01T12:11:01.140 に答える
0

Spring 3.1 にアップグレードし、Bean プロファイルを使用します。

于 2012-08-02T20:43:56.907 に答える