9

異なるポート番号で 2 回実行する必要があるアプリケーションがあります。ポート番号をコマンド ライン引数として渡し、Spring コンテキスト ファイルで取得する方法はありますか。

 <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL">
       <value>vm://localhost:${<i>port number goes here</i>}</value>
    </property>
</bean>
4

2 に答える 2

19

システムプロパティとして渡された場合は、それを行うことができます。-Dport.number=8080 (または任意のポート) を JVM コマンドに追加し、プロパティ値を次のように変更します。

 <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL">
           <value>vm://localhost:${port.number}/value>
        </property>
 </bean>

すなわち。

java -Dport.number=8080 com.package.MyMain
于 2013-01-28T21:16:25.160 に答える
1

静的変数の使用に問題がない場合は、これを使用できます..

 public class MyClass{
  public static String[] ARGS;
  public static void main(String[] args) {
        ARGS = args;
   }
}


<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>#{'vm://localhost:'+argsportnumber}</value>
</property>
</bean>

于 2013-01-28T21:53:47.030 に答える