如何在运行时在启用Spring的Web应用程序中安排新方法?

weixin_38083228 2019-09-12 01:13:16
现在我有一个带有@Scheduled方法的bean正常工作;它在我的applicationContext.xml中声明. <!-- some JPA stuff --> <bean id="aWorkingBean" class="some.package.WorkingBean"> <property name="someDAO" ref="someDAO" /> </bean> <task:annotation-driven scheduler="myScheduler" /> <task:scheduler id="myScheduler" pool-size="10" /> 我正在尝试做的是根据请求以编程方式安排另一个方法(例如,加载一些带注释的类并注入其依赖项).就像是: WebApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext(); BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(NonWorkingBean.class); // add DAO references... ctx.registerBeanDefinition("nonWorkingBean", builder.getBeanDefinition()); // <-- this doesn't work 显然它不起作用,因为XmlWebApplicationContext是只读的,没有registerBeanDefinition方法.有没有其他方法来实现这一目标? 我正在使用Tomcat 6.0.29和Spring 3.0.4
...全文
3 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38104241 2019-09-12
  • 打赏
  • 举报
回复
<任务:调度>而@Scheduled实际上只是一种安排静态任务的便捷方法.它不适合动态调度.是的,你可以使它工作,但它会很尴尬. 当你把< task:scheduler id =“myScheduler”>在你的配置中,Spring创建了一个名为myScheduler的TaskScheduler bean.这可以注入到您自己的bean中,并且可以通过编程方式调用以安排新任务.您需要创建一个Runnable来传递给TaskScheduler,但这应该足够简单.

430

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧