如何动态修改spring配置文件

来源:百度知道 编辑:UC知道 时间:2024/06/06 04:38:39
我现在有这样一个需求:是要根据页面的配置来备份oracle数据库中的信息,页面上有按天,按周,按月来对数据库进行备份,目前我已在spring中配置文件中实现了数据备份但是不能动态来修改这个值:一下是我的spring配置文件:
<beans>
<bean id="test" class="com.mpos.net.Test"></bean>

<bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="test"></property>
<property name="targetMethod" value="print"></property>
</bean>

<bean id="footBallAutoOrderTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="methodInvokingJobDetail"/>
</property>
<property name="cronExpression">
<value>0 * * * * ?</value>
</property>
</

这个很好实现啊,把这个表达式存数据库,当然每次启动的时候(服务器启动的时候)读一下配置文件
写个重启的方法:cronExpression这个从外面传进来

// 更新表达式把数据库的字段更新了

appTimeTaskConfigDAO.updateCronExpression(cronExpression);

String[] triggerNames = stdScheduler.getTriggerNames(stdScheduler.DEFAULT_GROUP);
String triggerName = triggerNames[0];
CronTrigger trigger = (CronTrigger) stdScheduler.getTrigger(triggerName, stdScheduler.DEFAULT_GROUP);
//设置trigger新的表达式

trigger.setCronExpression(cronExpression);
//重新启动新的trigger

stdScheduler.rescheduleJob(triggerName, stdScheduler.DEFAULT_GROUP, trigger);

如果不重启服务器的话,很难该,至少我现在不会。
但是你可以把
<bean id="footBallAutoOrderTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="job