0

3つの環境変数があります。MY_TOPIC MY_CONTEXT_FACTORY MY_LDAP

最初のもの-MY_TOPICはこのように機能します

<bean id="myPublishTopic" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiTemplate">
            <ref bean="jndiTemplate"/>
        </property>
        <property name="jndiName">
            <value>fxClientDestinationUID=${MY_TOPIC}</value>
        </property>
    </bean> 

最後の2つは、環境変数からの読み取りでは機能しません。これをどのように機能させるのですか?

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
        <property name="environment">
         <props>
            <prop key="java.naming.factory.initial">${MY_CONTEXT_FACTORY}</prop>
            <prop key="java.naming.provider.url">${MY_LDAP}</prop>
         </props>
        </property>
    </bean> 

最後の2つは、避けたいプロパティファイルから読み取った場合にのみ機能します。

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location"><value>/WEB-INF/classes/springConfig-devel.properties</value></property>
    </bean>
4

1 に答える 1

0

Spring 3+ を使用している場合は、Spring Expression Language を使用できます。

#{systemEnvironment['NAME']}環境変数へのアクセスに使用

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
        <property name="environment">
            <props>
                <prop key="java.naming.factory.initial">#{systemEnvironment['MY_CONTEXT_FACTORY']}</prop>
                <prop key="java.naming.provider.url">#{systemEnvironment['MY_LDAP']}</prop>
         </props>
    </property>
</bean> 

#{systemProperties['value']}Java システム プロパティに使用します。

于 2012-11-02T12:23:06.577 に答える