JAVA高手请进关于Spring配置问题
我现在有这样一个需求:是要根据页面的配置来备份oracle数据库中的信息,页面上有按天,按周,按月来对数据库进行备份,目前我已在spring中配置文件中实现了数据备份但是...
我现在有这样一个需求:是要根据页面的配置来备份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>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="footBallAutoOrderTrigger"/>
</list>
</property>
</bean>
</beans>
就这个<value>0 * * * * ?</value>值想动态改变而不用从启服务器没有用struts,请问各位如何实现这个
如果可以解决问题追加100分 展开
<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>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="footBallAutoOrderTrigger"/>
</list>
</property>
</bean>
</beans>
就这个<value>0 * * * * ?</value>值想动态改变而不用从启服务器没有用struts,请问各位如何实现这个
如果可以解决问题追加100分 展开
5个回答
展开全部
这个问题我做过实验,需求几乎是一样的
不过,遗憾而且负责任地告诉你,这样实验我从未成功过--虽然我不确定它到底能不能实现!
达到设计指标的关键是销毁并重建spring容器或者容器里面的一个bean
销毁并重建spring容器的实验我是做失败了
要想通过销毁并重建bean(具体到你的案例就是销毁org.springframework.scheduling.quartz.SchedulerFactoryBean的那个实例,你没有给bean一个id)我可以给你一个思路,具体的实验你自己做吧,做完把结果披露出来
新建一个class继承org.springframework.scheduling.quartz.SchedulerFactoryBean,比如名称叫:org.xxx.yyy.MySchedulerFactoryBean,
配置文件中的:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
替换成:
<bean id="schedulerFactoryBean" class="org.xxx.yyy.MySchedulerFactoryBean" destroy-method="destroy">
注意:bean元素添加了destroy-method属性,值是:destroy.
然后给org.xxx.yyy.MySchedulerFactoryBean增加一个叫destroy的方法,这个方法用来销毁这个bean,然后关闭并再次打开spring应用程序上下文.
如果org.springframework.scheduling.quartz.SchedulerFactoryBean有销毁的方法可以不用写新类了,直接在配置文件调用它的销毁方法,如果没有就在MySchedulerFactoryBean的destroy方法内写销毁的代码,可以将其所有属性为null.
再不行的话用同样方法对付footBallAutoOrderTrigger,同样给它个销毁方法,并在配置文件里配置.在关闭spring应用程序上下文的时候系统会自动调用这个方法,重新定义它的cronExpression属性的值,然后重建spring应用程序上下文
祝你成功!
不过,遗憾而且负责任地告诉你,这样实验我从未成功过--虽然我不确定它到底能不能实现!
达到设计指标的关键是销毁并重建spring容器或者容器里面的一个bean
销毁并重建spring容器的实验我是做失败了
要想通过销毁并重建bean(具体到你的案例就是销毁org.springframework.scheduling.quartz.SchedulerFactoryBean的那个实例,你没有给bean一个id)我可以给你一个思路,具体的实验你自己做吧,做完把结果披露出来
新建一个class继承org.springframework.scheduling.quartz.SchedulerFactoryBean,比如名称叫:org.xxx.yyy.MySchedulerFactoryBean,
配置文件中的:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
替换成:
<bean id="schedulerFactoryBean" class="org.xxx.yyy.MySchedulerFactoryBean" destroy-method="destroy">
注意:bean元素添加了destroy-method属性,值是:destroy.
然后给org.xxx.yyy.MySchedulerFactoryBean增加一个叫destroy的方法,这个方法用来销毁这个bean,然后关闭并再次打开spring应用程序上下文.
如果org.springframework.scheduling.quartz.SchedulerFactoryBean有销毁的方法可以不用写新类了,直接在配置文件调用它的销毁方法,如果没有就在MySchedulerFactoryBean的destroy方法内写销毁的代码,可以将其所有属性为null.
再不行的话用同样方法对付footBallAutoOrderTrigger,同样给它个销毁方法,并在配置文件里配置.在关闭spring应用程序上下文的时候系统会自动调用这个方法,重新定义它的cronExpression属性的值,然后重建spring应用程序上下文
祝你成功!
展开全部
太高级了。。在这里问题这么高级的问题,
注定没有结果。。。
注定没有结果。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在程序里获得footBallAutoOrderTrigger这个对象,然后重新设置cronExpression属性值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于你这个项目来说,倒不于就加一个quartz这个插件,专门处理这些问题的。这个插件你应该知道吧,就是作一些计划任务工作的,比如说在某一时刻要作什么事,或者一天内间隔多久执行一段什么样的程序。你可以用这个小工具。如果你的项目你有权作修改的话。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询