我有一个需要使用不同端口号运行两次的应用程序,有没有办法可以将端口号作为命令行参数传递并在spring上下文文件中检索它们。
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>vm://localhost:${<i>port number goes here</i>}</value>
</property>
</bean>
答案 0 :(得分: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
答案 1 :(得分:2)
如果您在使用静态变量时没有任何问题,那么您可以使用它。
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>