我正在尝试动态地在属性文件中加载一个键(有一个值)。这就是我想要做的。我有两个应用程序服务器A& B.并且在两个服务器中都有一个石英作业每隔一小时运行一次,这会导致一些问题。为了解决这个问题,我想在属性文件中设置一个带有服务器名称的密钥(比如serverA,serverB),当我将石英计划传递给cronbean(在spring xml中)时,我应该传递的值(这是从属性文件)应该是动态的。我的意思是,如果主机名是服务器A,那么来自serverA的值应该从属性文件加载,并且与服务器B相同。下面是代码片段 -
**application-host.xml - Initialized hostname in spring context**
<bean id="hostname" factory-bean="localhost" factory-method="getHostName"/>
<bean id="localhost" class="java.net.InetAddress" factory-method="getLocalHost"/>
**application-quartz.xml - Place where am loading the quartz schedule**
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="job" />
<property name="cronExpression" value="${ serverA / serverB }" /> ** THIS IS WHERE I WANT TO SET OR LOAD PROPERTIES FROM THE FILE, BASED ON THE HOST NAME.
</bean>
**env-test.properties**
serverA = 0 0 3 * * ?
serverB = 0 0 5 * * ?
我知道其他方法,例如在启动应用服务器之前使用不同的时间表更新属性文件,但这有点冒险,因为在部署过程中有可能错过。感谢您是否可以帮助我找到更好的解决方案或回答这个问题。
谢谢,Sirish。