使用命令行参数将值注入spring

Cod*_*nja 10 java spring

我有一个应用程序需要使用不同的端口号运行两次,是否有一种方法可以将端口号作为命令行参数传递并在spring上下文文件中检索它们.

 <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL">
       <value>vm://localhost:${<i>port number goes here</i>}</value>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

Mik*_*one 19

如果传递的是作为系统属性,则可以这样做.将-Dport.number = 8080(或您想要的任何端口)添加到JVM命令,然后将属性值更改为:

 <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL">
           <value>vm://localhost:${port.number}/value>
        </property>
 </bean>
Run Code Online (Sandbox Code Playgroud)

即.

java -Dport.number=8080 com.package.MyMain
Run Code Online (Sandbox Code Playgroud)

  • 然后,在加载spring上下文之前,主类可以将该param添加为系统属性.System.setProperty("port.name",args [0]); (4认同)