如何在运行时在启用Spring的Web应用程序中安排新方法?
现在我有一个带有@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