9

我有一个应用程序需要使用不同的端口号运行两次,有没有办法可以将端口号作为命令行参数传递并在 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>

IE。

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 回答